我在临时工作簿中使用WorksheetFunction.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错误,我不知道该错误的原因以及如何解决它?
答案 0 :(得分:1)
尝试
Dimen4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("A1:A200"))
colNum4 = WorksheetFunction.Match(sum.Range("A19"), temp.Sheets(1).Range("A36").EntireRow)
并且可能会在所有行中更改它。我猜到它会失败..
原因是:
Range("A1:200")
语法无效正如DG在下面的评论中指出的那样,Range("1:1").Address
确实有效,但它完全无效!
答案 1 :(得分:0)
这是Match
函数找不到匹配项时发生的错误。由于您没有向Match
提供第三个参数,问题可能是:a)您搜索范围内的值未按升序排序,和/或b)您的值'重新搜索的内容少于您搜索范围内的所有值。
答案 2 :(得分:0)
试试这个:
Dim Result As Variant
If Not VBA.IsError(Application.Match(...)) Then
Result = Application.Match(...)
End If
这会尝试匹配,如果函数出错,则不会分配结果。