如何从excel 2010中查找数据验证源

时间:2017-03-24 07:13:57

标签: excel excel-vba excel-formula excel-2010 vba

我有一个excel模板,它有很多数据验证,我需要将数据验证函数转换为c#代码。

我无法找到设置数据验证值的单元格范围。 数据验证是根据细胞大小调整来调整其大小。

有什么猜测?我在网上搜索了很多但是找不到合适的解决方案。

1 个答案:

答案 0 :(得分:2)

如果一个单元格 - 比如说Sheet1!A1有数据验证,那么要检索提供数据验证值的范围,请在VBA中使用以下内容:

Sheet1.Range("A1").Validation.Formula1

使用Excel Interop,您可以在C#(未经测试)中执行此操作:

Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Microsoft.Office.Interop.Excel.Range xlRange;
Microsoft.Office.Interop.Excel.Validation xlValidation;
string validationSource;

// Set Sheet 1 as the sheet you want to work with
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

// get range
xlRange = xlWorkSheet.get_Range("A1", System.Reflection.Missing.Value);

// get validation object
xlValidation = xlRange.Validation;

// get source
validationSource = (string)xlValidation.Formula1;

请参阅here

HTH