编写宏来粘贴数组

时间:2015-04-28 16:18:19

标签: arrays excel vba

我试图粘贴我创建的数组,我运行宏并且似乎没有问题,只是根本没有粘贴数组!

Private Sub Worksheet_Change(ByVal Target As Range)

Worksheets("Info").Range("A1").Select
Dim iLastRow As Long
iLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
Dim arrmatrix() As String
ReDim arrmatrix(1 To iLastRow)
For i = 1 To iLastRow
Range("A2").Cells(i, 1).Select
 If Selection.Offset(11, 0) = "Pi emitida" Then
arrmatrix(i) = Range("A2").Cells(i, 1).Value
End If
Next i
Worksheets("Inicio").Range("G4").Value = arrmatrix()


End Sub

1 个答案:

答案 0 :(得分:0)

  • 目前尚不清楚为何将此作为worksheet_change事件宏
  • 将目标范围的大小调整为与数组
  • 相同的大小(和形状)
  • 将数组声明为类型变体,而不是字符串,除非您想逐个元素地写它。
  • 如果目标范围是列,则需要转置数组;或者将其声明为2D数组并填充第一维:
ReDim arrmatrix(1 To iLastRow, 1 to 1)
...
arrmatrix(i,1) = Range("A2").Cells(i, 1).Value
...
Worksheets("Inicio").Range("G4").Resize(ubound(arrmatrix,1)).Value = arrmatrix()
...