【发布时间】:2017-08-25 23:13:29
【问题描述】:
我是 VBA 新手。我正在尝试将列从一个工作簿复制到另一个工作簿。下面是我尝试使用的 sub,但出现“运行时错误 9 - 下标超出范围”的错误。有什么建议吗?
Sub copydata(wbSource As String, wsSource As String, rangeSource As String, wbDest As String, wsDest As String, rangeDest As String)
Workbooks(wbSource).Worksheets(wsSource).Range(rangeSource).copy Destination:=Workbooks(wbDest).Worksheets(wsDest).Range(rangeDest)
End Sub
Sub result()
' I also tried to set wsSource and wsDest to 1 but still doesn't work
Call copydata("es.csv", "es", "A:B", "Workbook1.xlsm", "result", "A:B")
End Sub
谢谢
编辑: 它们在同一个目录中。我在 Workbook1.xlsm 中创建模块
【问题讨论】:
-
其中一个工作簿/工作表不存在。
-
请检查编辑
-
它们“在同一个文件夹中”是不够的。它们必须在同一个工作区中,才能在不使用完全限定的外部引用的情况下从另一个工作簿(例如 .csv)引用。
标签: excel vba copy runtime-error