使用数组输入列的行 - VBA / Excel

时间:2015-08-27 16:18:05

标签: vba excel-vba excel

我的整个项目是使用一个工作表作为要引用的值的数组/存储库,并将其作为宏的一部分提供给其他人使用。我有其他代码引用此数组,并在安装宏中检查此工作表是否已存在:

Sub Detailed_Report_SS_Setup()

Application.DisplayAlerts = False

Dim ws As Worksheet
On Error Resume Next
Set ws = Sheets("Array")
On Error GoTo 0
If Not ws Is Nothing Then
Else
Sheets.Add().Name = "Array"
Populate_Array_Sheet
End If

Application.DisplayAlerts = True

End Sub

在尝试制作Populate_Array_Sheet时,我试图操作一些现有代码,用于命名工作簿中的工作表。我的问题是excel循环遍历我的数组并将每个值添加到列的每一行,在数组通过数组时覆盖它。

我相信我的问题是界限(我使用的是低位和高位),虽然我对此知之甚少,无法弄清楚如何纠正。以下是我有问题的代码示例:

Sub Populate_Array_Sheet()

Dim i As Long
Dim Arf As Variant
Arf = Array("n1", "n2", "n3", ..., "n36")

For i = LBound(Arf) To UBound(Arf)
Sheets("Array").Range("A1:A36") = Arf(i)
Next i

End Sub

我试图将每个单独的值(n1到n36)放到列中自己的行上。

1 个答案:

答案 0 :(得分:2)

您正在使用范围(“A1:A36”)将值应用于整个范围尝试此

Sub Populate_Array_Sheet()

Dim i As Long
Dim Arf As Variant
Arf = Array("n1", "n2", "n3",....., "n36")
Sheets("Array").Range("A1").Activate
For i = LBound(Arf) To UBound(Arf)
  ActiveCell.Value = Arf(i)
  ActiveCell.Offset(1, 0).Activate
Next i

End Sub