2009-02-27 10 views
0

In einem Makro verwende ich die gleiche Behandlung in jedem Arbeitsblatt der Datei.Excel VBA - Bereich neu initialisieren

Ich möchte bestimmen, welche Spalte einen bestimmten Text enthält, der in jedem Arbeitsblatt unterschiedlich sein kann.

Der Code ist wie folgt:

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 

Auf dem ersten Arbeitsblatt, alles funktioniert in geeigneter Weise und findet den Text in der entsprechenden Spalte column D. Wenn sich die Spalte im zweiten Arbeitsblatt hinter der Spalte D befindet, funktioniert sie ebenfalls. Wenn es jedoch ist, gibt es die Spalte, die den gewünschten Text enthält, nicht zurück. Wie behebe ich dieses Problem?

Antwort

2

Mein VBA ist ein bisschen rostig, aber ich den Find Befehl immer bevorzugt, da es der schnellste Weg ist vielleicht ein Arbeitsblatt, wie diese suchen:

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 
Verwandte Themen