尝试复制工作表时“下标超出范围”

时间:2015-11-04 17:50:37

标签: excel vba excel-vba copy

Private Sub Add_Click()
ActiveWorkbook.Worksheets(ComboBox1.Value).Copy Before:=Workbooks(link.Value).Worksheets("Contract")
End Sub

这是我100%确定链接和ComboBox1具有我正在寻找的值。

有人能告诉我为什么我一直收到错误“下标超出范围”吗?

1 个答案:

答案 0 :(得分:1)

问题来自:

Before := Workbooks(link.Value)

从您的评论中可以看出link.value包含文件的完整路径名。方法Workbooks(somename)需要 somename 作为名称,例如Workbooks(test.xls),而不是路径。

尝试从浏览对话框中获取没有路径的文件名,并在没有路径的情况下将其提供给此函数。最后,为了快速修复它,你可以使用它:

ActiveWorkbook.Worksheets(ComboBox1.Value).Copy Before:=Workbooks(Right(link.Value, Len(link.Value) - InStrRev(link.Value, "\"))).Worksheets("Contract")

添加的代码从link.value中给出的完整路径中提取文件名。