VBA:使用表格设置范围对象(“表格名称”)。行(1)。find

我有一组代码,看起来像这样,我正在search第1行的特定单词,并希望返回find它的列号:

Dim MyRng As Range Dim MySht As Worksheet Set MySht = ThisWorkbook.Sheets("Numbers") Set MyRng = MySht.Rows(1).Find("Header 3" etc...) FindSeriesColumn = MyRng.Column 

我应该能够消除定义一个工作表对象的需要似乎是合乎逻辑的,并且应该能够执行以下操作:

 Dim MyRng As Range Set MyRng = ThisWorkbook.Sheets("Numbers").Rows(1).Find("Header 3" etc...) FindSeriesColumn = MyRng.Column 

但是, Set MyRng ...行会导致错误。 什么是不正确的使用ThisWorkbook.Sheets("Sheet Name").Rows(1).Find...

使用这个表单:

 Sub fhksadf() Dim MyRng As Range Set MyRng = ThisWorkbook.Sheets("Numbers").Rows(1).Find(what:="Header 3") FindSeriesColumn = MyRng.Column MsgBox FindSeriesColumn End Sub 

在这里输入图像说明

编辑#1:

定义正在检查的范围比较容易,并且在该范围的开始之后启动Find()

 Sub fhksadf() Dim MyRng As Range Dim temp As Range Set temp = ThisWorkbook.Sheets("Numbers").Rows(1).Cells Set MyRng = temp.Find(what:="Header 3", After:=temp(1)) FindSeriesColumn = MyRng.Column MsgBox FindSeriesColumn End Sub