Excel VBA – 在函数范围内使用variables

我正在使用一个函数来设置一个variables:

Dim LastMemRow As Integer Dim FLAGFileNo As Integer Dim MemNoRow As Integer MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range("A1", "A2000"), 0) 

哪些工作正常,但是我想用一个variablesLastMemRow(以前由一些较早的代码设置)replace“A2000”,以便匹配只search目标工作表的列A中最后使用的行。 我试过这个:

 MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range(Cells(1, 1), Cells(1, LastMemRow)), 0) 

虽然FLAGFileNo和LastMemRowvariables包含期望值,但MemNoRow始终为0。

也许我不能以这种方式在工作表函数中使用单元格? (Excel 2010)

而不是使用.Range(Cells(1,1), Cells(1, LastMemRow))可能或可能不会引用错误的工作表,使用LastMemRow而不是2000连接一个string。

 MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range("A1", "A" & LastMemRow), 0) 

尝试:

 MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range("A1", Cells(1, LastMemRow).AddressLocal), 0) 

如果第一个代码工作,这也应该。 让我知道。

如果任何人有兴趣,这个作品:

 MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range("A1", "A" & CStr(LastMemRow)), 0) 

即在原始文章中使用“A”和CStr(LastMemRow)而不是“A2000”,最后一位将LastMemRow整型variables转换为一个string。

感谢您的回复,指出了我的正确方向。