如何将制表符值复制到vba中的单元格

时间:2019-02-19 11:26:57

标签: excel vba

尊敬的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

我想从中学到东西,所以如果可能的话,请向我解释我在这里做错了什么,或者我的方法缺乏见识。

2 个答案:

答案 0 :(得分:2)

您不需要第二个循环。此外,您在制表符中有5个值,因此第一个循环必须是59,而不是510。除了109以外,您还可以使用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

enter image description here

注意:

您使用TRANSPOSE()将数组移到单元格的中。您不需要TRANSPOSE()即可将数组移到单元的中。