Private Sub Add_Click()
ActiveWorkbook.Worksheets(ComboBox1.Value).Copy Before:=Workbooks(link.Value).Worksheets("Contract")
End Sub
这是我100%确定链接和ComboBox1具有我正在查找的值。当试图复制工作表时,“下标超出范围”
有人能告诉我为什么我不断收到错误“下标超出范围”?
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
保存文件的全路径名。方法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给出的完整路径的文件名。
如果您使用变量作为参数,则不要在后面添加'.value'。 – findwindow
@findwindow它们不是变量。一个是ComboBox,一个是TextBox。 – Chris
@Davesexcel链接是用户浏览的文件。所以它会像C:\ users \ me \ etc \ Test.xls – Chris