2012-02-20 23 views
0

私は以下のコードを使用して列を検索しています。VBA検索条件

Set FinColumn = .Find(What:="Tax", AFter:=.Cells(1, 1), LookIn:=xlValues, LookAt _ 
      :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ 
      False, SearchFormat:=False). 

以下のような列がある場合は、それを識別する必要があります。私はそこにすべての上記columns.is私は実装することができます任意の検索条件を見つけるために、設定された声明の上変更することができますどのように

Tax  Tax&Fee Tax&Fee1 

おかげで、

Chaitu

答えて

2

私の最初の答えは正しかったが、それは完全ではなかったです。次のコードは "税金"を含む各セルを検索するためにループし、すべてが処理された時点で停止します。

xlWholexlPartに置き換えてください。ただし、コードが動作しないようなエラーがあります。たとえば、Findが操作する範囲を定義していないとします。私は.Findの前に.Cellsを追加しました。

これが役に立ちます。

Option Explicit 
Sub FindAllTax() 

    Dim ColCrnt As Long 
    Dim ColLast As Long 
    Dim FinColumn As Range 
    Dim RowCrnt As Long 
    Dim RowLast As Long 

    RowLast = 0 
    ColLast = 0 

    With Sheets("Sheet6") 

    Set FinColumn = .Cells.Find(What:="Tax", After:=.Cells(1, 1), _ 
      LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _ 
      SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) 

    Do While True 
     If FinColumn Is Nothing Then 
     ' No occurrence of "Tax" found 
     Exit Do 
     End If 
     RowCrnt = FinColumn.Row 
     ColCrnt = FinColumn.Column 
     If RowCrnt < RowLast Or _ 
     (RowCrnt = RowLast And ColCrnt < ColLast) Then 
     ' Current cell is above last cell so have looped after finding 
     ' all values. 
     Exit Do 
     End If 
     Debug.Print "Cells(" & RowCrnt & ", " & ColCrnt & ")=" & _ 
              .Cells(RowCrnt, ColCrnt).Value 
     RowLast = RowCrnt 
     ColLast = ColCrnt 
     Set FinColumn = .Cells.FindNext(FinColumn) 
    Loop 
    End With 

    Debug.Print "All cells containing ""tax"" processed" 

End Sub 
+0

+1が行きます! :) –

1

トニーは既にあなたに片道を与えています。ワイルドカードを使用する別の方法があります。あなたがセルを持っているとしましょうので今、ワイルドカードを使用することが重要である

A1 =税

B10 =税&料金

C15 =税&料金1

D20 = 123Tax

G45 = DoggyTax

税金、つまり税金、税額を検索する場合はどうすればいいですか&料金と税金&料金1?

また、すべてのセルで検索を行う場合は、範囲を指定する必要があります。ここに簡単な例があります

FIND()とFINDNEXT()についての詳細は、下記リンクをご覧ください。

TOPIC:エクセルVBAで.Findと.FindNext

LINKhttp://siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba/

:あなたは "税" のすべてのインスタンスを検索したい場合は、あなたがする必要はありませんワイルドカード。あなたがしなければならないのは、Tonyが提案したように以下を使用することだけです。

LookAt:=xlPart 

第一で働いていたHTH

シド