当试图复制工作表时,“下标超出范围”
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中提取文件名。