如何引用我的主要工作簿以及通过此子过程打开的第二个工作簿?我尝试执行workbooks.("client_path").activate
,因为我的目标是使用此宏打开一个单独的工作簿,该工作簿分配给变量client_path
并协调A列中的每个(1到200)值:A包含所有值我的主要工作簿的K列K:K如果在client_path
工作簿上找到了值(再次列A:A),但在我的主工作簿上没有(再次列为K:K) - 我想将唯一值添加到M列M:M主要工作手册。相反的逻辑,我希望在我的主要工作簿上找到但在我的client_path
工作簿上找不到的任何值出现在我的主要工作簿的N:N列中。
我正在开发此代码的主要工作簿的名称是title" Client DIRTY watchlist"工作簿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
答案 0 :(得分:7)
您能早点参考您的工作簿吗?
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")
然后继续循环代码
答案 1 :(得分:2)
dim Wb as workbook
set wb= Workbooks.Open (Client_path).activate
打开,并在一行中激活它,设置一个变量供以后使用(wb)。
请注意,稍后再引用wb将不会再次打开它,而不是再次激活它,它只是引用wb! (除非你告诉他)