Vba WorksheetFunction.Match用于临时工作表问题
我正在临时工作簿中使用Vba WorksheetFunction.Match用于临时工作表问题,vba,excel,worksheet-function,Vba,Excel,Worksheet Function,我正在临时工作簿中使用工作表函数.Match Dimen = WorksheetFunction.Match(sum.Range("A15"), temp.Sheets(1).Range("A1:A200")) colNum = WorksheetFunction.Match(sum.Range("A15"), temp.Sheets(1).Range("32:32")) Dimen1 = WorksheetFunction.Match(sum.Range("A16"), temp.Sheet
工作表函数.Match
Dimen = WorksheetFunction.Match(sum.Range("A15"), temp.Sheets(1).Range("A1:A200"))
colNum = WorksheetFunction.Match(sum.Range("A15"), temp.Sheets(1).Range("32:32"))
Dimen1 = WorksheetFunction.Match(sum.Range("A16"), temp.Sheets(1).Range("A1:A200"))
colNum1 = WorksheetFunction.Match(sum.Range("A16"), temp.Sheets(1).Range("33:33"))
Dimen2 = WorksheetFunction.Match(sum.Range("A17"), temp.Sheets(1).Range("A1:A200"))
colNum2 = WorksheetFunction.Match(sum.Range("A17"), temp.Sheets(1).Range("34:34"))
Dimen3 = WorksheetFunction.Match(sum.Range("A18"), temp.Sheets(1).Range("A1:A200"))
colNum3 = WorksheetFunction.Match(sum.Range("A18"), temp.Sheets(1).Range("35:35"))
Dimen4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("A1:200"))
colNum4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("36:36"))
最后两行:
Dimen4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("A1:200"))
colNum4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("36:36"))
它出现了1004错误,我不知道该错误的原因以及如何解决它?试试看
Dimen4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("A1:A200"))
colNum4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("A36").EntireRow)
可能会在所有行中更改它。我想它会在任何地方失败
原因是:
语法无效范围(“A1:200”)
正如DG在下面的评论中指出的,
范围(“1:1”)。地址
确实有效,它一点也不无效 这是当Match
函数未找到匹配项时发生的错误。由于您没有为匹配提供第三个参数,问题可能是:a)您正在搜索的范围内的值没有按升序排序,和/或,b)您正在搜索的值小于您正在搜索的范围内的所有值。尝试以下操作:
Dim Result As Variant
If Not VBA.IsError(Application.Match(...)) Then
Result = Application.Match(...)
End If
这将尝试匹配,如果函数出现错误,则不会指定结果
范围(“1:1”)
不是无效的,例如键入?范围(“1:1”)。即时窗口中的地址产生“$1:$1”。它指的是第一行。@道格·格兰西,你说得对,我全错了。修正-谢谢!