2017-04-27 3 views
0

Ich kann nicht für das Leben von mir bekommen die Escape-Funktion für mein Makro richtig. Ich versuche, eine Countif-Funktion einzugeben, die Platzhalter auf beiden Seiten eines Zellreferenzwerts verwendet. Sie findet auch die letzte Zeile in einer separaten Registerkarte, um den Bereich zum Zählen zu definieren.Escaping für Countif Makro mit Wildcard-Zelle Referenz

Ich möchte die Zielzelle enthalten die folgende Zeichenfolge:

=COUNTIF('NCR''s'!$B$8:$C$117,"*"&'Design Baseline'!B8&"*") 

im folgenden ist der Code, der dies zu tun versucht:

Sub test() 

Dim Wild1 As String 
Dim Wild2 As String 
Wild1 = Chr(34) & Chr(42) & Chr(34) & Chr(38) 
Wild2 = Chr(38) & Chr(34) & Chr(42) & Chr(34) 

'code for counting instances of parts on each tab 
Sheets("NCR's").Select 
    Cells.Select 
    Selection.EntireRow.Hidden = False 
    NCRlastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row 

Sheets("Design Baseline").Select 
    Cells.Select 
    Selection.EntireRow.Hidden = False 
    'Range("AB8").Formula = "=COUNTIF('NCR''s'!$B$8:$C$" & NCRlastRow & "," & Chr(34) & "*" & Chr(34) & "&" & "'Design Baseline'!B29" & "&" & Chr(34) & "*" & Chr(34) & ")" 
    Range("AB8").Formula = "=COUNTIF('NCR''s'!$B$8:$C$" & NCRlastRow & "," & Wild1 & "'Design Baseline'!B29" & Wild2 & ")" 

End Sub 

Wie Sie in der Zeile, die mit‘sehen können, ich habe versucht, die Chr (ref) zu verwenden, Methode, um dies zu umgehen sowie benutzerdefinierte Zeichenfolgen für t zu verwenden er ", * und & Symbole. Ich habe auch die doppelte "Flucht und sogar" versucht. Nicht sicher, wie dieses oO

Die folgende Zeile war zu bekommen, was habe ich vor der Realisierung, die ich brauchte Platzhalter und hat gut funktioniert, nicht sicher, ob es helfen würde, aber ich werde es hier setzen unabhängig:

Range("AC8").Formula = "=COUNTIF('NCR''s'!$B$8:$B$" & NCRlastRow & ",'Design Baseline'!B8)" 

Jede Hilfe würde sehr geschätzt werden!

+0

Warum nicht ersetzen ' "" & Chr (34) & "*"' mit '“, "*" '? –

+0

Die Linie mag es nicht, da es Blattverweise darin gibt '(' Design Baseline ') –

Antwort

0

Sie müssen die doppelten Anführungszeichen in Ihrer Formel zu vermeiden. Etwas wie folgt aus:

Dim formula As String 
formula = "=COUNTIF('NCR''s'!$A$8:$C$" & NCRlastRow & ",""*"" &'Design Baseline'!B8&""*"")" 
Debug.Print formula 
Range("AB8").formula = formula 
+0

Ahh danke! das scheint die Aufgabe erledigt zu haben! Ich bin mir nicht sicher, was damit schief gelaufen ist, als ich versucht habe, den Zitaten zu entkommen, aber das Problem ist jetzt gelöst :) –