Excel VBA – 重新初始化一个范围

在macros中,我在文件的每个工作表中应用相同的处理。

我想确定哪一列包含一个特定的文本,这在每个工作表中可能不同。

代码如下:

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 

在第一个工作表上,一切正常工作,并find适当的列column D的文本。 在第二个工作表中,如果该列在D列之后,则它也起作用。 但是,如果是column A, B, or C ,则不会返回包含所需文本的列。 我该如何解决这个问题?

我的VBA有点生疏,但我总是喜欢“ Find命令,因为它是search工作表的最快方法,也许是这样:

 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