调用“ThisWorkbook”

我正在尝试在模板(硬编码)和每周更改名称(ThisWorkbook)的dynamic报告之间切换。 我正在努力调用variablesx将焦点带到工作簿。 我正在复制模板公式并将其粘贴到dynamic报告中。

Sub wkbk() Dim x As Excel.Workbook Set x = ThisWorkbook Dim pth As String pth = x.FullName Windows(pth).Activate End Sub 

这是我正在使用的VBA代码:

 Windows("BBU_CMD_TEMPLATE.xlsx").Activate Cells.Select Selection.Copy Windows(pth).Activate Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Paste 

为什么不使用ThisWorkbook.Activate ? 通常不需要指定一个variables来表示像ThisWorkbook这样的内置ThisWorkbook所以其余的variables是不必要的,除非您在该过程的其他地方使用它们(从提供的代码片断中,您不是,所以您不需要需要他们)。

 Sub wkbk() ThisWorkbook.Activate End Sub 

但是, wkbk程序的重点是wkbk ? 如果仅仅是为了激活工作簿,那也不需要,并且有足够的理由来避免Activate

 Sub CopySheetFromTemplateToThisWorkbook() Dim tmplt As Workbook On Error Resume Next Set tmplt = Workbooks("BBU_CMD_TEMPLATE.xlsx") If tmplt Is Nothing Then MsgBox "Template file needs to be open..." Exit Sub End If On Error GoTo 0 With ThisWorkbook tmplt.ActiveSheet.Copy After:=.Sheets(.Sheets.Count) End With End Sub 

你不需要Sub wkbk

只是使用

 Windows("BBU_CMD_TEMPLATE.xlsx").Activate Cells.Select Selection.Copy ThisWorkbook.Activate Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Paste 

你需要在Sub wkbk中replace的主要部分是

 ThisWorkbook.Activate