繁体   English   中英

使用vb.net将数据验证添加到Excel电子表格

[英]Adding Data Validation to an excel spreadsheet using vb.net

我正在尝试使用带有Sheet2上数据的VB.NET将数据验证添加到电子表格中。 我可以在Sheet2上同时打开工作表和所需的数据,但是我遇到的问题是在Sheet1上填充了数据验证下拉菜单。 我正在尝试在A列和Sheet1的前700行中创建数据验证,而Sheet2上的数据将在A列的前800行中。

我尝试了以下操作,它创建了数据验证,并且里面只有一个值-“ Sheet2”-因为我实际上没有在这里放一个公式。

With xlsSheet 'worksheet
    .Range(String.Concat("Sheet1!$A$2:$A$700")).Validation.Add(XlDVType.xlValidateList, & _
     Formula1:="Sheet2")
End With

当我尝试以下操作时,它将创建带有列和sheet2上的数据的excel工作表,但不会创建数据验证。

With xlsSheet 'worksheet
    .Range(String.Concat("Sheet1!$A$2:$A$700")).Validation.Add(XlDVType.xlValidateList, & _
     Formula1:="=Sheet2!$A$2:$A$800")
End With

我在网上寻找示例,发现http://www.get-digital-help.com/2011/10/05/add-values-to-a-data-validation-list-vba/,但这也无法正常工作为了我。

我怎样才能将Sheet2中A2:A800中的数据转换为A2:A700中sheet1上的数据验证?

任何帮助,将不胜感激。

如果有人想知道解决方案,这就是我所做的:

首先,我创建了一个命名集,将在datavalidation下拉列表中引用该命名集。

workbooks.Names.Add(Name:="Working", RefersToR1C1:="=Work2!R2C1:R700" & "C1")
'Named set needed for data validation.

With xlsSheet
     .Range("Work1!$A$2:$A$700").Validation.Add(XlDVType.xlValidateList, Formula1:="=Working")
End With

在上面的代码中,您可以看到Work1是要在其中插入数据验证下拉列表的工作表的名称。命名范围是从Work2(我的第二个工作表)获取数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM