【问题标题】:How to find the data validation source from excel 2010如何从excel 2010中找到数据验证源
【发布时间】:2017-03-24 07:13:56
【问题描述】:

我有一个包含大量数据验证的 excel 模板,我需要将数据验证函数转换为 c# 代码。

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

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

【问题讨论】:

  • 您可以在 Excel 工作表上使用两种类型的组合框 - 表单组合框或 ActiveX 组合框。两者的属性不同。您的电子表格使用的是哪种类型?
  • 感谢罗宾麦肯齐!我
  • 我发现这不是一个组合框,它是一个数据列表。数据菜单 -> 数据验证。我希望这个控件没有像组合框这样的单元格链接属性,这只是用于选择当前单元格的值。

标签: excel excel-formula excel-2010 vba


【解决方案1】:

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

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

使用 Excel 互操作,您可以在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多