2009-02-27 50 views
0

在宏中,我在文件的每個工作表中應用相同的處理。Excel VBA - 重新初始化一個範圍

我想確定哪一列包含特定的文本,這在每個Worksheet中可能不同。

的代碼如下所示:合適地

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

我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