VB.Net:在Excel单元格中插入数据validation

我试图以编程方式将下拉框添加到Excel工作表中的单元格。 对于一个非常简单的例子,我只需要下拉框给出“是”或“否”的选项。 谷歌search之后,听起来好像我可以很容易地通过在单元格中插入数据validation来做到这一点。

我遇到了如何做到这一点find一个例子的问题。 我发现的所有例子都过时了,太复杂了,或者不在VB.Net中。 当我说得太复杂时,我的意思是这不是一个简单的“是”“否”的情况。 他们在不同的工作表中使用实际的列。

如果你只是想要一个简单的单元格内是/不是下拉菜单,你只需要声明一个范围并添加一个validation规则。 微软在这里有一些文档,但是就像大多数互操作文档一样,它有点稀疏……所以这里是一个片段,展示了如何添加validation列表:

'Imports Microsoft.Office.Interop.Excel Dim xlApp As New Excel.Application xlApp.Visible = True Dim xlWorkbooks As Excel.Workbooks = xlApp.Workbooks Dim xlWorkbook As Excel.Workbook = xlWorkbooks.Add Dim xlWorksheet As Excel.Worksheet = CType(xlWorkbook.Worksheets(1), Excel.Worksheet) Dim xlRng As Excel.Range = xlWorksheet.Cells(1, 1) With xlRng.Validation .Add(Type:=Excel.XlDVType.xlValidateList, _ AlertStyle:=Excel.XlDVAlertStyle.xlValidAlertStop, _ Operator:=Excel.XlFormatConditionOperator.xlBetween, _ Formula1:="Yes,No") .IgnoreBlank = True .InCellDropdown = True End With System.Runtime.InteropServices.Marshal.ReleaseComObject(xlRng) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorksheet) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbooks) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)