[英]VBA Error Subscript out of range in for loop used to copy/paste
我不断收到我的for循环的错误消息。 它应该做的是将给定工作表的每一行的变量与第一列进行比较,如果匹配则将其复制,然后将其粘贴到其他工作簿中的工作表中,但由于某些原因,我不断收到“运行时错误'9':下标超出范围”,用于引用新工作簿/工作表的行。
到目前为止,我的for循环:
For i = 1 To Sheets(1).UsedRange.Rows.Count
If Sheets(1).Cells(i, 1).Value Like dateRange & "*" Then
Sheets(1).Rows(i).Copy
Workbooks(destinationWorkbook).Worksheets("Sheet2").Rows(i).Paste 'Debug shows the error is here
End If
Next i
在前面的代码中,我将变量定义为:
destinationWorkbook = "C:\Users\lbran\Desktop\Book1.xlsm"
我也尝试过使用Workbooks(destinationWorkbook).Worksheets(“ Sheet2”)。Cells(i,1).Paste
我是VBA的新手,所以不确定我是否正确地引用了粘贴到工作表,但是我知道它确实以新的空白表存在于工作簿中
打开工作簿后,它的名称就是它保存在其中的文件名,而不是路径。 所以你会做
Workbooks.open(destinationWorkbook)
但随后将其称为
Workbooks("Book1.xlsm")
但是我想知道您是否要复制到硬盘上没有的新工作簿吗? 在这种情况下,您会写
Workbooks.add
WorkBooks("book1")
没有文件扩展名,因为您尚未保存。 您可以通过使用对象变量来避免所有这些问题
Dim wb as workbook
Set wb = workbooks.open(destinationworkbook)
or
Set wb = workbooks.add
然后只是wb来参考工作簿
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.