我是VBA的新手,想把我每天做的儀表盤(Excel報告)自動化。我做的一個步驟是為每個基金添加評論。儀表盤每天都會更新,但前一天會有一些重疊,所以我想在前一天的儀表盤上使用索引和匹配函式來查找評論。
Daily - 我正在執行宏的每日儀表板的名稱
。Daily Dashboard_09.09.21 - 我將前一天的儀表盤保存為這個名字,日期每天都在變化
問題是,我們并沒有在周末完成這些儀表盤,因此周一的儀表盤需要參考周五的儀表盤的索引和匹配。因此,我認為解決這個問題的最簡單的方法是做一個類似于 "名稱 "的東西,并使用通配符*.。當我在設定wb2時使用前一天的儀表盤的確切名稱時,我下面的代碼可以完美地作業。然而,當我試圖使用類似于名稱并使用ActiveWorkbook時,它不能識別前一天的儀表板作為ActiveWorkbook,并且索引和匹配沒有回傳。
請您幫助我糾正這個問題。
Dim wb As Workbook
Dim wb1 As 作業簿
Dim wb2 As 作業簿
Dim wbName As String
wbName = "日常儀表盤"
For Each wb In Applications.Workbooks
如果 wb.Name Like wbName & "*" Then
wb.激活
退出 為
End If
Next wb
Set wb1 = Workbooks("Daily"/span>)
Set wb2 = ActiveWorkbook
Dim ws1 As 作業表
Dim ws2 As 作業表
Set ws1 = wb1.Worksheets("基金貸款細節")
Set ws2 = wb2.Worksheets("基金貸款細節")
Dim End_Row_1 As Long
Dim End_Row_2 As Long
End_Row_1 = ws1.Range("C" & Rows.Count).End(xlUp).Row
End_Row_2 = ws2.Range("C"/span> & Rows.Count).End(xlUp).Row
For Counter = 3 to End_Row_1
On Error Resume Next
If Range("T"/span> & Counter)="Y" And Range("U" & Counter)="" Then
ws1.Cells(Counter, 21) 。Value = Applications.WorksheetFunction.Index(ws2.Range("U3:U" & End_Row_2), Application.WorksheetFunction.Match(ws1.Cells(Counter, 3) 。Value, ws2.Range("C3:C" & End_Row_2), 0))
uj5u.com熱心網友回復:
檢查是否找到了匹配,如果沒有匹配就退出子程式。
Const pattern = "Daily Dashboard*"/span>
Dim wbName as String, wb as Workbook
For Each wb In Applications.Workbooks
如果 wb.Name Like pattern 然后
wbName = wb.Name
退出 為
End If
Next wb
If wbName = "" then
Msgbox "No workbook like " & pattern, vbCritical
退出 sub
Else[/span
Set wb2 = Workbooks(wbName)
End If
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323589.html
標籤:
上一篇:Angular中的反應式表單管理
