我得到了
将数组和工作簿传递给此函数时出现下标超出范围
错误。有人能看出它有什么问题吗?
- 更新 -
Private Function PasteFunction(cd As Variant, wk As Workbook) As Boolean
Dim bool As Boolean, row As Integer, col As Integer
bool = False
col = 1
row = 3
Do While bool = False
MsgBox row
MsgBox col
If IsEmpty(wk.Sheets("Sheet1").Cells(row, col)) = True Then
For col = 1 To 81
wk.Sheets("Sheet1").Cells(row, col) = cd(col)
Next col
bool = True
Else
row = row + 1
End If
Loop
End Function
答案 0 :(得分:0)
此行产生错误:
If IsEmpty(wk.Sheets("Sheet1").Range(col & row)) = True Then
Range (col&row)
返回类似Range(1223)
的内容,并且等待Range("A12:A53")
等值。
判断你的代码,逻辑应该是这样的:
Cells(row, col)
代替Range(col & row)
。
答案 1 :(得分:0)
下标超出范围错误可能是由于对工作簿或工作表引用的错误引用,也可能是因为您的数组cd短于81项。你怎么称呼你的功能。你可以发布你的函数调用。工作簿路径可能不正确也检查拼写错误
答案 2 :(得分:0)
如果cd有81个元素,那么它们从cd(0)运行到cd(80) 如果您想将它们放入第1列到第81列,您需要
For col = 1 To 81
wk.Sheets("Sheet1").Cells(row, col) = cd(col-1)
Next col