[英]VBA Macro workbook.open or workbook.activate through variable reference
如何參考通過此子過程打開的主要工作簿和第二個工作簿? 我嘗試做workbooks.("client_path").activate
因為我的宏目標是打開一個單獨的工作簿,該工作簿分配給變量client_path
並將A:A列中的每個(1到200)值與所有值進行協調我的主要工作簿的K:K列。 如果在client_path
工作簿(同樣是A:A列)上找到了一個值,但是在我的主要工作簿上(又是K:K列)上找不到了一個值-我想將唯一值添加到我的主要工作簿的M:M列中。 相反,我希望在主工作簿上找到但在client_path
工作簿上找不到的任何值都出現在主工作簿的N:N列中。
我正在開發此代碼的主要工作簿的名稱為標題“ Client DIRTY監視列表”。工作簿client_path
的內容每天更新,並且隨着時間的流逝而無用。
我是否需要創建一個函數來完成此可變工作簿參考?
Sub Client_Dirty_Recon()
Dim Client_path As String
Dim Client_watchlist As Workbook
Dim Client_client_email As Workbook
Set Client_watchlist = ActiveWorkbook
Dim email_range As Range
Dim watchlist_range As Range
Application.ScreenUpdatClient = False
Client_path = Range("Path")
Workbooks.Open Client_path
Dim recon_list As Range
'For Each n In recon_list:
Dim i As Variant
For i = 1 To 200
Set email_range = ActiveWorkbook.ActiveSheet.Range("A" & i)
Dim b As Variant
For Each b In email_range
Set watchlist_range = Sheets("Client DIRTY watchlist").Range("B:B")
'if b
Next b
Next i
End Sub
您能早些引用工作簿嗎?
Dim wb as workbook
Dim wbDirty as workbook
set wb = thisWorkbook
set wbDirty = workbooks.open Client_Path
然后,當您定義范圍時,Excel會知道它們屬於哪個工作簿。
Dim rngReconcile as range
Dim rngWatch as range
set rngReconcile = wb.Sheets(1).Range("K:K")
set rngWatch = wbDirty.Sheets("Client DIRTY watchlist").Range("B:B")
然后繼續循環代碼
dim Wb as workbook
set wb= Workbooks.Open (Client_path).activate
這將打開並在一行中將其全部激活,並設置一個變量供以后使用(wb)。
請注意,稍后引用wb不會再次打開它,也不會再次激活它,它只是指向wb! (除非你告訴他)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.