Ich habe eine Tabelle mit 5 Spalten. Spalte A ist "Feldname", Spalten B bis D sind die Namen der Tabellen, in denen die Feldnamen vorhanden sein können oder nicht. Wenn eine Zelle den Wert "#NA" hat, ist der Feldname in dieser Tabelle nicht vorhanden, andernfalls enthält die Zelle den Feldwert. Ich versuche eine Funktion zu erstellen, so dass Spalte E (Ergebnisse) mir wissen lässt, in welcher der Tabellen das Feld vorhanden ist, mit einer der folgenden Zeichenfolgen: "Alle", "BDR und PFA", "BDR und Monatsrechnung" , "PFA und Monatsrechnung", "Nur BDR", "Nur PFA", "Nur Monatsrechnung", "Keine". Unten ist die Funktion, die ich erstellt habe, aber es wird nicht richtig ausgewertet. Zum Beispiel die erste Zeile lautet:Excel VBA Select Case mit Bereichen und mehreren Kriterien
Feldname: "BENEFIT_PERIOD" In "BDR: BENEFIT_PERIOD" In PFA: "#NA" Im Monat Bill: "BENEFIT_PERIOD", Ergebnis: "Alle"
die Ergebnisse Spalte sollte „BDR und Monat Bill“ lesen
(beachten sie auch: die #NA Werte sind Text, nicht das Ergebnis von keinem Wert wird durch eine Formel zurück)
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 True' anstelle von' Select Case DetTblCombo' –