我使用函数设置变量:
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)
哪种方法有效,但是我想要更换" A2000"使用变量LastMemRow(之前由某些早期代码设置),以便Match仅搜索目标工作表的col A中最后使用的行。我试过这个:
MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range(Cells(1, 1), Cells(1, LastMemRow)), 0)
虽然FLAGFileNo和LastMemRow变量包含期望值,但MemNoRow始终为0.
也许我不能在工作表函数中以这种方式使用Cell? (Excel 2010)
答案 0 :(得分:2)
使用LastMemRow代替2000连接字符串,而不是使用可能引用或不引用错误工作表的.Range(Cells(1,1), Cells(1, LastMemRow))
。
MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range("A1", "A" & LastMemRow), 0)
答案 1 :(得分:0)
尝试:
MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range("A1", Cells(1, LastMemRow).AddressLocal), 0)
如果第一个代码有效,那也应该这样做。让我知道。
答案 2 :(得分:0)
如果有人有兴趣,这可行:
MemNoRow = WorksheetFunction.Match(FLAGFileNo, Workbooks(TalkRegTempFile).Worksheets("Setup Sheet").Range("A1", "A" & CStr(LastMemRow)), 0)
即。在原来的帖子中使用“A”而不是“A2000”。 CStr(LastMemRow),最后一位将LastMemRow整数变量转换为字符串。
感谢您的回复,指出了我正确的方向。