我真的很難將 Index Match 轉換為 VBA。我對 VBA 很陌生,事實證明這超出了我的能力范圍。
我在 Sheet2 中有一個表格,列有“案例”、“概率”、“影響”和“嚴重性”。然后是 Sheet1 中的矩陣
我的公式(填滿列)是:
=IFNA(INDEX(Sheet1!$C$2:$G$6,MATCH([@Probability],Sheet1!$B$2:$B$6,0),MATCH([@Impact],Sheet1!$C$1:$G$1,0)),"")
我正在嘗試根據矩陣中的值自動填充表中的“嚴重性”
桌子
矩陣
我嘗試使用 Application.WorksheetFunction 但沒有得到任何結果。
任何建議將不勝感激。
uj5u.com熱心網友回復:
VBA 使用INDEX/MATCH公式
- 這些將填充值而不是公式。
- 如果洗掉 line
.Value = .Value,公式將保留。 - 調整作業表和表格名稱。
Option Explicit
Sub TestEdu()
Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet2") ' adjust
Dim tbl As ListObject: Set tbl = ws.ListObjects("Table1") ' adjust
Dim lcl As ListColumn: Set lcl = tbl.ListColumns("Severity")
With lcl.DataBodyRange
.Formula = "=IFNA(INDEX(Sheet1!$C$2:$G$6,MATCH([@Probability]," _
& "Sheet1!$B$2:$B$6,0),MATCH([@Impact],Sheet1!$C$1:$G$1,0)),"""")"
.Value = .Value
End With
End Sub
Sub TestCompact()
With ThisWorkbook.Worksheets("Sheet2").ListObjects("Table1") _
.ListColumns("Severity").DataBodyRange
.Formula = "=IFNA(INDEX(Sheet1!$C$2:$G$6,MATCH([@Probability]," _
& "Sheet1!$B$2:$B$6,0),MATCH([@Impact],Sheet1!$C$1:$G$1,0)),"""")"
.Value = .Value
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/435208.html
上一篇:從表1和表2匹配或查找值
