データの動的な結果セットが読み込まれた Excel シートがあります。すべてのデータがロードされたら、各行の最後に YES/NO ドロップダウンを追加する必要があります。結果セットのサイズが事前にわからないため、これを動的に行う必要があります。次のコードは、「アプリケーション定義またはオブジェクト定義のエラー」をスローします。
Dim firstRow As Integer
Dim lastRow As Integer
Dim I As Integer
Dim VOptions As String
VOptions = "1. Yes, 2. No"
firstRow = GetResultRowStart.row + 1
lastRow = GetResultRowStart.End(xlDown).row
For I = firstRow To lastRow
Range("AO" & firstRow & ":AO" & lastRow).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=VOptions
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Options"
.ErrorTitle = ""
.InputMessage = "Click yes or no"
.errorMessage = ""
.ShowInput = True
.ShowError = True
End With
Next I
メソッド GetResultRowStart は、結果データがシートに入力される行の開始を示します。コードの他の部分でもこのメソッドを使用しましたが、完全に機能します。メッセージ ボックスを使用してデバッグすると、Range(..).select ステートメントでスローされるエラーが示唆されました。
このエラーの原因に関するアイデア。