【问题标题】:Writing a macro to paste an array编写一个宏来粘贴一个数组
【发布时间】:2015-07-07 14:46:43
【问题描述】:

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

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

【问题讨论】:

  • 是否有任何错误或只是静默失败?

标签: arrays excel vba


【解决方案1】:
  • 尚不清楚为什么将其作为worksheet_change 事件宏
  • 将目标范围调整为与数组相同的大小(和形状)
  • 将数组声明为类型变量,而不是字符串,除非您想逐个元素地编写它。
  • 如果目标范围是一列,则需要转置数组;或将其声明为二维数组并填充第一个维度:

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()
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    相关资源
    最近更新 更多