0

VBA を使用して、配列のサイズに応じて長さが異なるドロップダウン リストを追加しようとしています。次のコードではエラーは発生しませんが、実際にはデータ検証が追加されません...

リストを作成するには:

Dim RegionList as String
RegionList = ""
For i = LBound(x) To UBound(x)
    RegionList = RegionList + x(i) & ", "
Next

検証を作成するには:

RegionList = Left(RegionList, Len(RegionList) - 2) 'Remove trailing Comma/Space

With Sheet2.Range("C1").Validation 'Insert dropdown to cell C1
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=RegionList
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

次の式でこのコードを実行する前に、シートが保護されていることに注意してください。

Sheet2.Protect Password="xxx", DrawingObjects = False, UserInterfaceOnly = True

編集:ドロップダウンリストを表示したい特定のセルは保護されていないため、シートの保護に関するビットはおそらく無関係です。

どんなアイデアでも大歓迎です!

4

1 に答える 1