尊敬的StackOverFlow成员,
我尝试将标签内容复制到一系列单元格中。例如,如果我的选项卡中有5个值,则要将每个值复制到5个不同的单元格中。因此Tab的1值等于1个单元格。
我尝试遍历单元格的范围并遍历选项卡,如以下代码所示。但是我每个单元格只有5个。
Sub test()
Dim i As Integer
Dim j As Integer
Dim tabtest(4) As Integer
tabtest(0) = 1
tabtest(1) = 2
tabtest(2) = 3
tabtest(3) = 4
tabtest(4) = 5
For i = 5 To 10
For j = 0 To 4
Sheets("Câbles").Range("A" & i).Value = tabtest(j)
Next j
Next i
End Sub
我想从中学到东西,所以如果可能的话,请向我解释我在这里做错了什么,或者我的方法缺乏见识。
答案 0 :(得分:2)
您不需要第二个循环。此外,您在制表符中有5个值,因此第一个循环必须是5
至9
,而不是5
至10
。除了10
或9
以外,您还可以使用Ubound(tabtest)
来实现所需的功能。
这是您要尝试的吗?
j = 0
For i = 5 To 9
Sheets("Câbles").Range("A" & i).Value = tabtest(j)
j = j + 1
Next i
使用Ubound
Sub test()
Dim i As Long, j As Long
Dim startRow As Long
Dim tabtest(4) As Integer
tabtest(0) = 1
tabtest(1) = 2
tabtest(2) = 3
tabtest(3) = 4
tabtest(4) = 5
startRow = 5
For i = startRow To (startRow + UBound(tabtest))
Sheets("Câbles").Range("A" & i).Value = tabtest(j)
j = j + 1
Next i
End Sub
答案 1 :(得分:1)
您的代码正在运行两个单独的循环。实际上,不需要不需要循环:
Sub test()
Dim tabtest(4) As Integer
tabtest(0) = 1
tabtest(1) = 2
tabtest(2) = 3
tabtest(3) = 4
tabtest(4) = 5
With Application.WorksheetFunction
Sheets("Câbles").Range("A5").Resize(UBound(tabtest) + 1, 1).Value = .Transpose(tabtest)
End With
End Sub
注意:
您使用TRANSPOSE()
将数组移到单元格的列中。您不需要TRANSPOSE()
即可将数组移到单元的行中。