通常、Excelのレコードオプションは素晴らしいですが、今回は役に立ちませんでした。VBAによる間接式によるデータ検証リストの作成
私はこのコードでVBAを介してデータ検証リストを作成することができます。
Sub Macro 8()
With Range("C8").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Land"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
さて、この作品。しかし、その下のセルには、式が=INDIRECT($C$8)
である必要があります。だから私はほとんど同じコードを持っレコーダーを使用して:
Sub Macro1()
With Range("C9").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=indirect($C$8)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
しかし、そのコードを使用して、私はいつも「アプリケーション定義またはオブジェクト定義エラー」を得るラインを指して
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=indirect($C$8)"
ができます誰私の間違いがどこにあるか教えてください。
こんにちはマイク、答えをありがとう! 私は間接的なセルもドロップダウンする必要があります... 私はC8から得た値がワークシートのリストの名前なので手動でそれを行うので、C9のリストから選択します ちょうど挿入=間接($ C $ 8)それは動作しません... 任意のアイデア? –
= Indirect( "$ C $ 8")を使用する必要があります。それを超えて、私はこの質問に答えたと思います。それ以上の問題については、新しい質問を始めるのが最善です。 – MikeC