【发布时间】:2020-12-04 15:31:32
【问题描述】:
我有一份包含公寓数量的清单。
我想在这里填充字符串
现在我想让它为每个要通过循环生成的工作表增加 1,如下所示:
Sub otdr()
Dim i As Long
Dim xNumber As Long
Dim otdr As Range
Dim xName As String
Dim ws As Worksheet
Application.ScreenUpdating = False
Set ws = Sheets("OTDR TRACE - 1")
Set otdr = ws.Range("Q46")
xNumber = Sheets("Frontsheet").Range("D32").Value
For i = 1 To (xNumber - 1)
otdr = "OT " & (i + 1) & " of " & Number
ws.Copy After:=ActiveWorkbook.Sheets(ws.Index + i - 1)
ActiveSheet.Name = "OTDR TRACE - " & (i + 1)
Next
ws.Activate
otdr = "OT 1 of " & Number
Application.ScreenUpdating = True
End Sub
在执行现有代码后,它停止工作。我创建了第二个循环,但复制了字符串,但没有更改数字。
Dim i As Long, j As Long
Dim xNumber As Long, yNumber As Long
Dim otdr As Range, desc As Range
Dim xName As String
Dim ws As Worksheet, wk As Worksheet
Application.ScreenUpdating = False
Set ws = Sheets("OTDR TRACE - 1")
Set wk = Sheets("Fibre drop release sheet")
Set otdr = ws.Range("Q46")
Set desc = ws.Range("N7")
xNumber = Sheets("Frontsheet").Range("D32").Value
yNumber = Sheets("Fibre drop release sheet").Range("E3").Value
For i = 1 To (xNumber - 1)
otdr = "OT " & (i + 1) & " of " & xNumber
ws.Copy After:=ActiveWorkbook.Sheets(ws.Index + i - 1)
ActiveSheet.Name = "OTDR TRACE - " & i + 1
Next
For j = 1 To Number
desc = "FIBRE TRACE @ 1310 & 1550 - F1 - Flat " & j ' copying only the string without the increment numeration
ws.Copy After:=ws.Range("N7")(ws.Index + i) ' this line generates an error
Next
ws.Activate
otdr = "OT 1 of " & xNumber
添加后
ws.Copy After:=ws.Range("N7")(ws.Index + i)
我收到以下错误:
方法“对象复制”工作表失败
解决方法如下:
Method 'Copy' of object '_Worksheet' failed
对我没有帮助
有没有机会让这个数字按张递增?
更新:
现在我的代码如下所示:
Sub otdr()
Dim i As Long, j As Long, Lastrow As Long
Dim xNumber As Long, yNumber As Long
Dim otdr As Range, desc As Range
Dim xName As String
Dim ws As Worksheet, wk As Worksheet
Application.ScreenUpdating = False
Set ws = Sheets("OTDR TRACE - 1")
Set wk = Sheets("Fibre drop release sheet")
Set otdr = ws.Range("Q46")
Set desc = ws.Range("N7")
xNumber = Sheets("Frontsheet").Range("D32").Value
Lastrow = wk.Cells(wk.Rows.Count, "E").End(xlUp).Row
For i = 1 To (xNumber - 1)
otdr = "OT " & (i + 1) & " of " & Number
ws.Copy After:=ActiveWorkbook.Sheets(ws.Index + i - 1)
ActiveSheet.Name = "OTDR TRACE - " & i + 1
Next
For j = 1 To Lastrow
desc = "FIBRE TRACE @ 1310 & 1550 - F1 - Flat " & j
Next
ws.Activate
otdr = "OT 1 of " & Number
Application.ScreenUpdating = True
End Sub
更新二
适用于以下情况:
For i = 1 To (xNumber - 1)
otdr = "OT " & (i + 1) & " of " & Number
ws.Copy After:=ActiveWorkbook.Sheets(ws.Index + i - 1)
ActiveSheet.Name = "OTDR TRACE - " & i + 1
For j = 1 To Lastrow
desc = "FIBRE TRACE @ 1310 & 1550 - F1 - Flat " & j
Worksheets("OTDR TRACE - 1").Range("N7").Copy Destination:=Sheets("OTDR TRACE - " & j + 1).Range("N7")
Next
Next
我收到以下行的“我们不能为合并的单元格执行此操作”:
Worksheets("OTDR TRACE - 1").Range("N7").Copy Destination:=Sheets("OTDR TRACE - " & j + 1).Range("N7")
【问题讨论】:
-
如果您查看“帮助”,您会发现您在另一个工作表之前或之后复制了一个工作表。您无法在范围之后复制工作表,您要做什么?