通常、vbaを介してExcelでデータ検証を適用することは可能ですが、私は特定の問題を抱えています
検証を適用するために間接的な方法を使用しています。通常、vbaを使用しない場合、「ソースは現在エラーと評価されています。続行しますか?」というExcelによる警告が表示されます。(これは、間接的に参照するセルが空である可能性があるためです)、「はい」をクリックすることで、Excelでこのエラーを簡単にスキップできるようになりました
リンクは次のとおりですhttp://www.contextures.com/xldataval02.html(依存検証リスト)
しかし、vbaを使用して同じことを実行しようとすると、ランタイムエラーが発生しますが、続行できるわかりやすいプロンプトがありません。この種のエラーを処理するにはどうすればよいですか。
エラーが発生すると、vbaは検証をまったく適用しないため、レジュームは機能しません。
これがコードです
Set rng = ThisWorkbook.Sheets("input").Range("AB11:AB65536")
With rng.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= _
"=INDIRECT(cablecode&""_depth_""&$Q11&""_""&$Z11&""_values"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
ケーブルコードは静的な名前付き範囲です
Q11とZ11は、その特定の行の入力を参照します
深さと値は通常の文字列です
ケーブルコードには、「is」または「iec」の2つの値を指定できます。
Q11は「xlpe」または「pvc」にすることができます
Z11は「al」または「cu」にすることができます
ケーブルコードは、直接参照されるプロジェクト全体で一定であるため、Q11とZ11は行ごとに異なる可能性があり、別々に参照されます。
文字列全体が「is_depth_al_xlpe_values」と同様に異なるパーミュレーションになり、すべての名前付き範囲がすでに定義されています