2009-02-27 3 views
0

В макросе я применяю ту же обработку в каждом рабочем листе файла.Excel VBA - reinitialize a range

Я хочу определить, в каком столбце содержится конкретный текст, который может отличаться в каждом рабочем листе.

Код выглядит следующим образом:

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. Во втором листе, если столбец после столбца D, он также функционирует. Однако, если он равен column A, B, or C, он не возвращает столбец, содержащий нужный текст. Как решить эту проблему?

ответ

2

Моих V немного ржавые, но я всегда предпочитал команду 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 
Смежные вопросы