0

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"))

最後の 2 行:

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 エラーが表示されます。そのエラーの理由と解決方法がわかりません。

4

3 に答える 3

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が、まったく無効ではありません!

于 2013-10-30T13:43:26.710 に答える
0

これを試して:

Dim Result As Variant
If Not VBA.IsError(Application.Match(...)) Then
    Result = Application.Match(...)
End If

これは一致を試み、関数にエラーがある場合は結果を割り当てません。

WorksheetFunction.Match メソッド (Excel)

于 2014-02-20T05:17:49.740 に答える
0

Matchこれは、関数が一致を見つけられなかった場合に発生するエラーです。に 3 番目の引数を指定していないため、次Matchのような問題が発生する可能性があります: a) 検索している範囲の値が昇順でソートされていない、および/または、b) 検索している値が小さい検索している範囲内のすべての値よりも。

于 2013-10-30T13:48:57.140 に答える