Vba 调用;本工作手册;
我试图在模板(硬编码)和每周更改名称的动态报告(ThisWorkbook)之间切换。我正在努力调用变量x以将焦点转移到工作簿中。我正在复制模板公式并将其粘贴到动态报告中Vba 调用;本工作手册;,vba,excel,Vba,Excel,我试图在模板(硬编码)和每周更改名称的动态报告(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
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
,因此这些变量中的其余部分是不必要的,除非您在该过程的其他地方使用它们(根据提供的代码片段,您不需要,所以您不需要它们)
然而,wkbk
程序有什么意义?如果仅用于激活工作簿,则也不需要这样做
难道不是只有
x.Activate
?另外,如果要向工作簿复制数据或从工作簿复制数据,为什么需要激活工作簿?此工作簿就是运行代码的工作簿。如果您试图引用外部工作簿,则需要另一种引用方式。
Sub wkbk()
ThisWorkbook.Activate
End Sub
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