2017-07-05 6 views
0

私はVBAプログラムを書いています。 私は1つの列vbaの検索に似ているか正規表現

For j = 0 To 4 
    For i = 2 To lastrow 
     If Cells(i, 12).Value = groupnames(j) And Cells(i, 8).Value Like "*" & "[BLOCKED]" & "*" Then 
      groupsum(j) = groupsum(j) + 1 
     End If 
    Next i 
Next j 

プログラムは、私が仕事に行くにこれを行うことができますどのように500を見つけた私は、この文字列のための96個の細胞を持っていますが、されて問題にこの文字列[BLOCKED]を見つけるのに問題がありますか?
ありがとうございました

+0

私は理解してください、あなたは、エラーメッセージが出ているわけではありませんか?期待した結果が得られないのですか?あなたのデータのサンプルを見ることなく少し助けてくれるでしょう、そして配列 'groupnames'を設定して初期化します –

+0

@ShaiRado私は彼が96の最大値を期待していると思っていましたが、500を見つけました。 –

+0

私はdatas 。このデータは配列に読み込まれます。私はすべてのセルをこの文字列[BLOCKED]で見つけたいと思います。たとえば、1つのセルに「[BLOCKED] - xyz」があります。 –

答えて

0

のように、の操作が間違っています。用途:

... Like "*[[]BLOCKED]*" 

[...]は、Characterクラスです。だからあなたの質問に書かれている方法では、それはブロックされたセット内の任意の単一の文字を見つけるでしょう。それは明らかにあなたが望むものではありません。

[文字に一致するように、私が示したように、それを文字クラスに囲みます。 ]文字に一致するには、文字クラスの外にある必要があります。ここ

+0

それは私のために働いていません –

+0

*何か*は意味しませんか?以前と同じ結果(500試合)を得ているということを意味するならば、あなたはあなたが述べた以外の問題を抱えています。あなたが何かを意味するなら、私はあなたの心を読むことができないことを理解する。あなたが提供した内容に基づいてエラーを再現することはできませんので、[最小、完全、および検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)をお読みください。 –

+0

申し訳ありません..私は0マッチがあることを意味します。私がブロックされているだけであれば、100matchesを得て、他の部分のコードは大丈夫です –

0

は私のコードです

Sub blocked() 

Dim SfileUsers As String 
Dim path As String 
Dim pathread As String 
Dim sFileread As String 
Dim lastrow As Long 
Dim keres() As Variant 
Dim groupadd() As String 
Dim groupnames(4) As String 
Dim groupsum(4) As Long 




path = "C:\Users\uids9282\Desktop\" 
SfileUsers = "Users.xlsx" 
Workbooks.Open path & SfileUsers 
Dim hossz As Long 
hossz = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row 
ReDim keres(hossz) 
ReDim groupadd(hossz) 
For i = 2 To hossz 
keres(i) = Sheets(1).Cells(i, 2).Value 
groupadd(i) = Sheets(1).Cells(i, 4).Value 
Next i 


'fájlmegnyitás 
pathread = "C:\Users\uids9282\Desktop\20170703\" 
sFileread = "open.xml" 
     If Dir(pathread & sFileread) = sFileread Then 
      Workbooks.Open pathread & sFileread 
      lastrow = Workbooks(sFileread).Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row 

      Else 
      MsgBox ("Nincs ilyen nevű excel táblázat. Kérem próbálkozzon újra") 
     End If 

'groupok hozzáadása a fájlhoz 
Dim user As String 
For j = 2 To hossz 
    For i = 2 To lastrow 
    user = Trim(Cells(i, 5).Value) 
     If user = keres(j) Then 
      Cells(i, 12).Value = groupadd(j) 
     End If 
    Next i 
Next j 

'group szummázása és átírása 
ThisWorkbook.Activate 
For i = 2 To 6 
groupnames(i - 2) = Cells(i, 1).Value 
Next i 
Workbooks(sFileread).Activate 
For j = 0 To 4 
    For i = 2 To lastrow 
     If Cells(i, 12).Value = groupnames(j) And Cells(i, 8).Value Like "*[[]BLOCKED[]]*" Then 'itt van benne a hiba!!   groupsum(j) = groupsum(j) + 1 
     End If 
    Next i 
Next j 
ThisWorkbook.Activate 
For j = 2 To 6 
    Cells(j, 4).Value = groupsum(j - 2) 
Next j 

Workbooks(SfileUsers).Close SaveChanges:=False 
Workbooks(sFileread).Close SaveChanges:=True 


End Sub 

this is my excel file where i want to searching

+0

これはあなたの質問への回答ではないので、また、Excelページのスクリーンショットを使用可能なExcelワークシートに変換するツールはありません。その変換を達成するためにどのツールを使用しますか? –