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