2017-04-27 4 views
0

私の人生のために私の傾きは私のマクロのエスケープを正しく動作させることはできません。セル参照値のいずれかの側でワイルドカードを使用するCountif関数を入力しようとしています。また、別のタブ内の最後の行が数えられる範囲を定義するのに役立ちます。ワイルドカードのセル参照でCountifマクロをエスケープする

ターゲットセルに次の文字列:

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

次はこれを実行しようとするコードです:

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 

あなたは「で始まる行に見ることができるように、私はchrです(REF)を使用しようとしましたメソッドを使用して、これを回避するだけでなく、ユーザー定義の文字列をt彼 "、*および&シンボル。私はまた、二重の "エスケープとイーブン"を試みました。このオブジェクト指向を回避する方法がわからない

次の行は、私はそれが役立つだろうが、私は関係なく、ここでそれを出してあげるならば、私はワイルドカードを必要とわからない、うまく働い実現する前に使用したものだった:

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

どんな助けでも大歓迎です!

+0

なぜ "" &chrです(34)& "*" ''と」、 "*" ''代わるものではありませ? –

+0

'(' Design Baseline ')を使用するシート参照があるため、その行は好きではありません –

答えて

0

あなたの数式で二重引用符をエスケープする必要があります。このような 何か:

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

ああありがとう!これは仕事をしたようだ!もともと引用符をエスケープしようとしたときに何が問題になったのか分かりませんが、問題は今解決しました:) –

関連する問題