我是一名VBA Excel初学者,学习过二维数组,我只是想从Excel中的一个标记表中捕捉一些值到一个数组中,并在下一个表中返回这些值,我尝试将数组设置为动态的,我编写了如下代码:
Private Sub CommandButton1_Click()
Dim myarr() As String
Dim lrow As Integer, lc As Integer, r As Integer, c As Integer
lrow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
lc = Sheets("Sheet1").Range("A1").End(xlToRight).Column
ReDim myarr(lrow, lc) As String
For r = 1 To lrow
For c = 1 To lc
myarr(r, c) = Cells(r, c).Value
Next c
Next r
Sheets("Sheet2").Select
For r = 1 To lrow
For c = 1 To lc
Cells(r, c) = myarr(r, c)
Next c
Next r
End Sub
我期望数组返回工作表2中的值,但运行代码后没有结果。但它没有发出错误。请帮助我解决这个问题,以便我能够正确学习VBA Excel。提前感谢。
1条答案
按热度按时间cygmwpex1#
在可能的情况下,使用特定的工作表引用来限定范围,不要依赖于Select。我希望在运行代码时选择工作表2,以便第一个
Cells(r, c).Value
将引用该工作表。或者更简单地说