如何使用vb-script在特定范围的Excel单元格中添加下拉列表?

时间:2019-07-16 13:16:15

标签: excel vbscript

我想将下拉列表添加到特定范围的单元格(例如D2至D100)。 下拉列表中有5个项目:添加,删除,验证,修改,无操作。

我已经尝试使用Stack Overflow中可用的代码,但是我并没有完全成功。下面的代码使用Range.Validate语法。

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True

Set objWB1 =objExcel.Workbooks.Open("C:\Kaushik\Desktop\Test.xlsx")
Set objWS1 = objWB1.Worksheets("Test")

objWS1.Cells(2,26).Value="Add"
objWS1.Cells(3,26).Value="Remove"
objWS1.Cells(4,26).Value="Validate"
objWS1.Cells(5,26).Value="Modify"
objWS1.Cells(6,26).Value="No Action"

With objWS1.Range("D2:D" & objWS1.UsedRange.Rows.Count).Validation
    .Add 3,1,1, "=$Z$2:$Z$6"
    .IgnoreBlank=True
    .InCellDropdown=True
    .InputTitle=""
    .ErrorTitle=""
    .InputMessage=""
    .ErrorMessage=""
    .ShowInput=True
    .ShowError=True
end With 

上面使用的代码需要我在excel的特定单元格中添加列表,然后使用这些单元格将其添加到定义范围内的下拉列表中。但是我不想在Excel中保留该列表,并且在删除它们时,下拉值也变为空白。 请同样帮我。

1 个答案:

答案 0 :(得分:0)

我试图满足您的要求。请在代码下方找到它

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True

Set objWorkbook1= objExcel.Workbooks.Add()

For i = 1 To 100

  With objWorkbook1.Sheets(1).Range("D" & i).Validation
    .Add 3, 1, 1, "Add,Remove,Validate,Modify,No Action"'''''Here Your Drop Down List'''''
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = "Overwrite"
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
  end With
  Next

 objWorkbook2.SaveAs("C:\Users\ECE-Kishore27\Desktop\Output.xlsx")
 objWorkbook2.Close


objExcel.Quit
set objExcel=nothing