私は5つの列を持つテーブルを持っています。列Aは「フィールド名」、列B〜Dはフィールド名が存在する場合と存在しない場合のテーブル名です。セルの値が "#NA"の場合、フィールド名はそのテーブルに存在しません。そうでない場合、セルにはフィールド値が入ります。私は関数を作成しようとしていますので、列E(結果)は、フィールドが "All"、 "BDR and PFA"、 "BDR and Month Bill"のいずれかの文字列で表示されるようにします。 、 "PFA and Month Bill"、 "BDR Only"、 "PFA Only"、 "Month Bill Only"、 "None"があります。以下は私が作成した関数ですが、正しく評価されていません。たとえば、最初の行は、読み取りますExcel VBA範囲と複数の条件付きケースを選択
フィールド名:では "BENEFIT_PERIOD"、 "BDR:BENEFIT_PERIOD" PFAで、:月間ビルで "#NA"、 "BENEFIT_PERIOD"、結果: "すべて"
をそれがどのように見えることから
Function DetTblCombo(rng1 As Range, rng2 As Range, rng3 As Range)
If (rng1.Cells.Count > 1) Or (rng2.Cells.Count > 1) Or (rng3.Cells.Count > 1) Then
AcceptOneCell = "Only allow 1 cell"
Exit Function
End If
Debug.Print rng1.Address
Dim strRng1 As String
Dim strRng2 As String
Dim strRng3 As String
strRng1 = rng1.Value
strRng2 = rng2.Value
strRng3 = rng3.Value
Select Case DetTblCombo
Case strRng1 <> "#NA" And strRng2 <> "#NA" And strRng3 <> "#NA"
DetTblCombo = "All"
Case strRng1 <> "#NA" And strRng2 <> "#NA" And strRng3 = "#NA"
DetTblCombo = "BDR and PFA"
Case strRng1 <> "#NA" And strRng2 = "#NA" And strRng3 <> "#NA"
DetTblCombo = "BDR and Month Bill"
Case strRng1 = "#NA" And strRng2 <> "#NA" And strRng3 <> "#NA"
DetTblCombo = "PFA and Month Bill"
Case strRng1 <> "#NA" And strRng2 = "#NA" And strRng3 = "#NA"
DetTblCombo = "BDR Only"
Case strRng1 = "#NA" And strRng2 <> "#NA" And strRng3 = "#NA"
DetTblCombo = "PFA Only"
Case strRng1 = "#NA" And strRng2 = "#NA" And strRng3 <> "#NA"
DetTblCombo = "Month Bill Only"
Case strRng1 = "#NA" And strRng2 = "#NA" And strRng3 = "#NA"
DetTblCombo = "None"
End Select
End Function
'Select Case DetTblCombo'の代わりに' Select Case True'を選択 –