当试图复制工作表时,“下标超出范围”

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

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

有人可以告诉我为什么我不断收到错误“下标超出范围 ”?

问题来自:

 Before := Workbooks(link.Value) 

从您的评论看来, link.value保存文件的完整path名称。 Workbooks(somename)方法需要somename作为名称,如Workbooks(test.xls) ,不包含path。

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

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

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