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。
感谢您的回复,指出了我的正确方向。