我有以下几行代码,基本上将工作表中的工作表复制并粘贴到另一个工作簿中:
Dim wb As Workbook, CopyFromWbk As Workbook, CopyToWbk As Workbook
Dim ShToCopy As Worksheet, targetSheet As Worksheet, sht As Worksheet
Dim Answer As VbMsgBoxResult
Answer = MsgBox("OPEN", vbOKCancel, "OPEN")
If Answer = vbCancel Then Exit Sub
Set wb = FileDialog_Open()
If wb Is Nothing Then End
Call Sheet_Selector
Set CopyFromWbk = wb
Set ShToCopy = CopyFromWbk.ActiveSheet
Set CopyToWbk = ThisWorkbook
ShToCopy.Cells.Copy
Set targetSheet =
CopyToWbk.Sheets.Add(After:=CopyToWbk.Sheets(CopyToWbk.Sheets.Count))
targetSheet.Range("A1").PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
targetSheet.Name = "Sheet2"
CopyFromWbk.Close False
问题是,当您使用Excel加载项时,您必须小心使用ThisWorkbook,因为它实际上是在解决Add In而不是我的工作簿。我无法使用" ActiveWorkbook"因为它解决了我从不复制到复制的工作簿。
所以我正在努力弄清楚如何解决这个问题。请注意,当Excel Add In中没有使用时,此代码可以正常工作(因为我使用的是ThisWorkbook)。
编辑:我所要做的就是将Set CopyToWbk = ActiveWorkbook
移到代码的顶部,当然它有效。