Normalerweise ist die Datensatzoption in Excel großartig, aber dieses Mal hat es nicht geholfen.Erstellen einer Datenvalidierungsliste mit indirekter Formel über VBA
kann ich eine Datenvalidierungsliste durch VBA mit diesem Kodex erstellen:
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
Jetzt funktioniert dies. Aber in der darunterliegenden Zelle brauche ich die Formel =INDIRECT($C$8)
. Also die Recorder mit bekam ich so ziemlich das gleiche Code:
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
aber das Code habe ich immer ein „anwendungsdefinierte oder Objekt definierte Fehler“ abrufen, die auf der Linie
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=indirect($C$8)"
Jeder kann Sag mir wo mein Fehler ist?
Hallo Mike, Danke für die Antwort! Ich brauche die indirekte Zelle, um ein Dropdown zu sein ... Wenn ich es manuell mache, funktioniert es seit Die Werte, die ich von C8 bekomme, sind die Namen von Listen in meinem Arbeitsblatt, so bekomme ich die Auswahl aus dieser Liste in C9 Mit nur einfügen = INDIREKT ($ C $ 8) funktioniert es nicht ... Irgendeine Idee? –
Sie müssen = Indirect ("$ C $ 8") verwenden. Darüber hinaus würde ich diese Frage als beantwortet betrachten. Bei weiteren Problemen empfiehlt es sich, eine neue Frage zu starten. – MikeC