使用Excel Add In时ThisWorkbook的问题

时间:2017-10-10 21:50:22

标签: excel vba excel-vba

我有以下几行代码,基本上将工作表中的工作表复制并粘贴到另一个工作簿中:

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移到代码的顶部,当然它有效。

0 个答案:

没有答案