调用“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