"Subscript out of Range" 尝试复制工作表时

"Subscript out of Range" when attempting to copy worksheet

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

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

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

问题来自:

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 中给出的完整路径中提取文件名。