我正在尝试在模板(硬编码)和每周更改名称的动态报告(ThisWorkbook)之间切换。我正在努力调用变量x将焦点带到工作簿。我正在复制模板公式并将它们粘贴到动态报告中。
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
答案 0 :(得分:3)
为什么不使用ThisWorkbook.Activate
?通常不需要指定一个变量来表示像ThisWorkbook
这样的内置函数,所以其他变量是不必要的,除非你在那个程序的其他地方使用它们(从提供的代码片段开始,你不是,所以你不需要它们。)
Sub wkbk()
ThisWorkbook.Activate
End Sub
然而,wkbk
程序有什么意义?如果仅激活工作簿,则不需要there are plenty of reasons to avoid 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