我被告知Excel对象模型允许Range
不是任何工作表的一部分,但包含一组单元格,并在工作簿中用名称表示。
任何人都可以向我解释这些是如何适应Excel对象模型的,以及如何以编程方式创建这样的东西(无论是在VBA还是.NET源代码中)。
感谢。
答案 0 :(得分:2)
你的问题有点模糊,但我会试一试。
好吧,正如Dave所描述的那样,你可以在工作表上给出一个特定范围的单元格“范围名称”,然后可以以编程方式引用它,但这听起来不像你所要求的那样。
听起来你在问“VBA代码是否有可用于任何工作表的单元格的抽象RANGE?”答案是否定的,甚至命名范围只是对真实工作表上真实单元格集的方便引用。
但是,您可以以编程方式隐藏工作表,以便用户不会看到它,并且仍然可以使用该工作表上的单元格和范围。只是做:
Sheets("Sheet1").Visible = xlSheetHidden
Sheets("Sheet2").Visible = xlSheetVeryHidden
Sheets("Sheet3").Visible = xlSheetVisible
你问的是什么“非常隐藏”? 这意味着用户无法转到“格式”,“工作表”,“取消隐藏”并使工作表可见。
因此,如果我正确理解你想要的东西,只需以编程方式隐藏其中一张,然后使用Dave的技术在这个隐藏(或非常隐藏)工作表上创建一个范围的命名引用。
答案 1 :(得分:1)
这将是一个命名范围。您可以引用选定的单元格,只需在公式栏旁边输入“A1”的名称。这会创建一个不会改变的命名范围。
或者,您可以创建基于公式的命名范围,因此可能会随着电子表格中的数据更改而更改。您可以从“定义名称”选项(位于Office 2010的“公式”功能区中)执行此操作。
命名范围可以从VBA访问,(我很确定)来自.net。
所以你要从vba访问命名范围,如下所示:
Range["MyNamedRange"]
答案 2 :(得分:1)
是的,VSTO中的Microsoft.Office.Tools.Excel
命名空间中有一个NamedRange控件。这是host control,它与Microsoft.Office.Interop.Excel.Range
命名空间中的本机Range控件不同。