【发布时间】:2018-07-30 20:14:13
【问题描述】:
从一个大脚本中处理我当前活动工作簿中的数据,然后将数据复制到一个新工作表中。我引入了一个按钮,可以将同一张工作表从当前工作簿复制到另一个工作簿。
这里 D6 包含目标文件的实际路径。当我尝试使用 Windows + 运行选项打开链接时,它是正确且打开的
J12 包含新工作表的名称。
“Total”表示目标工作簿中的第一个工作表,在该工作表之后应该插入新工作簿。
Private Sub CopyToDest_Click()
Dim destWbk As Workbook
Dim sourceWbk As Workbook
Dim shName As Variant
Dim filePath As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Set source and dest sheets
Set sourceWbk = ThisWorkbook
filePath = Sheet29.Range("D6").Value
Set destWbk = Workbooks.Open(filePath)
shName = Sheet29.Range("J12").Value
'Copy sheet from source file to destination sheet
sourceWbk.Sheets(shName).Copy After:=destWbk.Sheets("Total")
destWbk.Save
destWbk.Close
'Delete copied sheet from source file
Sheets(shName).Select
ActiveWindow.SelectedSheets.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Sheet Copied Successfully", vbInformation, "Success"
End Sub
sourceWbk.Sheets(shName).Copy After:=destWbk.Sheets("Total") - 此代码有时会给我“运行时错误'9':下标超出范围错误,而有时它显示成功 msgbox。真是令人困惑的场景。有人可以帮忙吗?
提前致谢。
【问题讨论】:
-
为什么不用“移动”而不是复制——那你只需要保存而不是删除...
-
即使我使用 move 也会给我同样的错误。