我需要幫助在全球范圍內宣告 2 個作業簿,其中作業簿名稱基于單元格值。
我有 3 個作業簿
- “UPSHI”(檔案名不變)作業簿
- “UAH DR_M04 2022”(M04 和 2022 每月更改,具體取決于月份和年份)作業簿
- “2022_M04_OP21_AAH”(2022、M04 和 OP21 每月更改)。
UPASHI 作業簿將是我的主檔案,它將創建我所有的按鈕和公式,我在單元格 B1 中為第二個作業簿創建了公式,該公式將標識第二個作業簿的當前名稱,并在單元格 B7 中創建另一個公式來標識我的第三個作業簿的當前名稱.
我使用單元格 B1 和 B7 來激活作業正常的作業簿,但是當我想將作業簿 2 中的作業表復制到作業簿 3 時,我無法使其作業。
我想為每個作業簿宣告一個全域變數,當我想激活或選擇作業簿時我可以呼叫它,我怎樣才能讓它作業?
這是我當前的代碼:
Sub PrepFile_Click()
Workbooks(ActiveSheet.Range("b1").Value).Activate
Application.DisplayAlerts = False
Sheets("Upstream Asset Hierarchy -OLD").Delete
Application.DisplayAlerts = True
Sheets("Upstream Asset Hierarchy Viewer").Name = "Upstream Asset Hierarchy -OLD"
Workbooks("UPASHI Automation File").Activate
Workbooks(ActiveSheet.Range("b7").Value).Activate
Sheets("Upstream Asset Hierarchy Viewer").Copy before:=Workbooks(ActiveSheet.Range("b1").Value).Sheets("UPSASSET")
End Sub
uj5u.com熱心網友回復:
請嘗試下一個方法:
Public在標準模塊之上宣告四個變數(在宣告區域中):
Option Explicit
Public wbUPS as Workbook, wbUAH as Workbook, wb3 As Workbook, ws As Worksheet
- 創建一個
Sub,讓我們說“SetWorbooks”,放置下一個代碼:
Sub SetWorbooks
Set wbUPS = ThisWorkbook
Set ws = wbUPS.Worksheets("The name of the active sheet")
Set wbUAH = Workbooks(ws.Range("b1").Value)
Set wb3 = Workbooks(ws.Range("b7").Value)
End Sub
運行上面的代碼(一次),然后只使用wbUPS, wbUAH, wb3. 當然,涉及的作業簿必須是打開的……
- 下一個方式使用上面的變數:
Sub PrepFile_Click()
If wbUAH Is Nothing Then SetWorbooks 'just in case
Application.DisplayAlerts = False
wbUAH.Sheets("Upstream Asset Hierarchy -OLD").Delete
Application.DisplayAlerts = True
wbUAH.Sheets("Upstream Asset Hierarchy Viewer").Name = "Upstream Asset Hierarchy -OLD"
wb3.Sheets("Upstream Asset Hierarchy Viewer").Copy before:=wbUAH.Sheets("UPSASSET")
End Sub
激活、選擇不會帶來任何好處(如果您知道如何避免),只會消耗 Excel 資源...
如果有不清楚的地方,請不要猶豫,要求澄清。當然,我無法測驗上述解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/478358.html
下一篇:Python系結變數
