问题描述
我在用户表单中使用 Match 来查找表中的记录,然后使用该记录的数据填充表单,以便对其进行编辑。但是,我无法通过匹配函数,该函数用于在表中查找行进行编辑。 我尝试了多种方法,但仍然出现错误。
方法 1 - 引用表列
错误是“运行时错误 1004:无法获取 WorksheetFunction 类的 Match 属性”
Private Sub Continue_Click() Dim SearchRow As Integer SearchRow = Application.WorksheetFunction.Match(Date_Search,Sheet1.Range("Table1[Date]"),0) Unload EditEntry NewEntry.Play_Date = Sheet1.Range("Data_Start").Offset(SearchRow,1).Value NewEntry.Show End Sub
@H_404_10@方法 2 - 引用工作表的确切范围
错误是“运行时错误 1004:无法获取 WorksheetFunction 类的 Match 属性”Private Sub Continue_Click() Dim SearchRow As Integer SearchRow = Application.WorksheetFunction.Match(Date_Search,Sheet1.Range("B4:B5"),1).Value NewEntry.Show End Sub
@H_404_10@即使我作为子程序引入只是为了测试,我仍然会出错。
错误是“运行时错误 1004:应用程序定义或对象定义的错误”Sub Testing() Dim DateSearchTest As Date Dim SearchRowTest As Long DateSearchTest = Sheet1.Range("B4").Value SearchRowTest = WorksheetFunction.Match(DateSearchTest,0) End Sub
@H_404_10@我这辈子都搞不清楚。非常感谢任何帮助。
解决方法
蒂姆威廉姆斯的评论允许编码工作。 CDate(variable) 没有,但转换为 long 可以让匹配正常工作,所以我不得不使用 CLng(variable) 作为匹配公式中的查找。