1

Index 関数と Match 関数を使用して入力された列があり、値が見つからない場合は N/A 値になります。列のそのようなエラー値をすべて特別な値に置き換えられるようにしたいと考えています。これをVBAコードで実行したい。何か助けはありますか?

関数を IF ロジックで書き直したくありません。

4

3 に答える 3

5

次のようにして、VBAなしでこれを実際に行うことができます。

IFERROR(myIndexMatchFormula,"special value")

本当に VBA ソリューションが必要な場合は、以下のようなものを試してください。範囲内のすべてのエラー セルが検出され、選択したものに置き換えられます。Ifステートメントもループもありません。

Option Explicit

Sub replaceErrors()

Dim rng As Range

On Error Resume Next

Set rng = Range("A1:A10").SpecialCells(xlCellTypeFormulas, 16) ' -> replace with your specific range

rng.Value = "special values" '-> place what you want here

On Error GoTo 0

End Sub
于 2012-10-03T13:11:43.227 に答える
1

Columns("E").SpecialCells(xlCellTypeFormulas, xlErrors).Value = "" 例として、列 E のすべてのエラーを置き換えることができます。ただし、残念ながら、specialcells は何も見つからない場合は常にエラーをスローするため、何らかの方法でこのエラーをキャッチする必要があります。on error ...

于 2012-10-03T13:12:26.987 に答える
0

rが調査する必要のある範囲である場合は、いつでも以下を使用して、セルの値が「N/A」であるかどうかを識別できます。

If r.Value = CVErr(xlErrNA) Then
    ... ' do something
Else
    ... ' do something else
Endif
于 2012-10-03T13:06:06.647 に答える