2009-02-27 33 views
0

マクロでは、ファイルの各ワークシートに同じ処理を適用しています。Excel VBA - 範囲の再初期化

特定のテキストが含まれている列を特定したいと思いますが、それぞれのワークシートで異なる場合があります。

コードは以下の通りである:最初のワークシート上

For Each Cell_version In Ws.Range("1:1") 
    If Ws.Range(convertir(Cell_version.Column) & "1") = "ICI" Then 
     Column_version = convertir(Cell_version.Column) 
     Trouve_col = True 
     MsgBox (Column_version) 
    End If 
If Trouve_col = True Then Exit For 
Next Cell_version 

、すべての機能を適切に、そして適切な列column Dのテキストを見出します。 2番目のワークシートでは、列が列Dの後にある場合も同様に機能します。ただし、column A, B, or Cの場合は、目的のテキストを含む列は返されません。この問題を解決するにはどうすればよいですか?

答えて

2

それはおそらく、このように、ワークシートを検索するための最速の方法であることから、私のVBAは少し錆びですが、私はいつもFindコマンドを好ん:

Sheets("YourSheet").Select 

Cells(1, 1).Select 

Set found = Cells.Find(What:="ICI", After:=ActiveCell, LookIn:=xlValues, _ 
    LookAt:=xlColumn, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False) 

If Not found Is Nothing Then 
    found.Activate  
    MsgBox(Selection.Row) 
End If