问题标签 [named-ranges]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 名称重复时在 Excel 工作簿中按字符串获取命名范围
详细地说,假设我的工作簿中有两个命名范围。两个命名范围具有相同的名称(比如说“myName”),但一个范围限定为 Sheet1,另一个范围限定为工作簿。
给定命名范围的名称(字符串),我想获取工作簿级别的命名范围。
如果我使用本机调用:wb.Names.Item("myName")
,它将返回工作表范围的命名范围。
相反,如果我这样做:wb.Names.Item("Sheet1!myName")
,那显然会返回工作表范围的名称范围。我发现我可以使用它来指定特定于工作表的工作表,但不能指定工作簿。
无论如何我可以指定我想要工作簿范围吗?
我的解决方法目前正在遍历所有名称的列表,并比较 .Name 属性以获取工作簿范围命名范围。这是因为 .Name 属性附加了一个“Sheet1!”。到工作表范围命名范围。然而,这样做成本很高,我想避免它。
excel-formula - 具有命名范围的 Excel 公式
我有一个关于公式的问题,这不是一个简单的问题,我希望有人能解决它。
表看起来像这样
命名范围 NR 封装列 Idx 和 Val(没有标题)。
我想要一个 Rslt 列单元格的公式:
a) 识别具有相同 Idx 值的行
b) 从那组行返回 max Val
我希望我很清楚,如果不是 - 请随时提问。
谢谢
excel - 在参考中使用 TREND 时 Excel OFFSET 函数错误
考虑具有以下值的 Excel 工作表:
正如预期的那样,=TREND(B1:B3,A1:A3,A1:A3)
在单元格 C1:C3 中输入数组公式会返回 。{5;8;11}
输入=OFFSET(C1:C3,1,0)
return {8;11;0}
,也符合预期。
但是,如果我尝试输入=ROWS(OFFSET(TREND(B1:B3,A1:A3,A1:A3),1,0))
,我会收到消息“您键入的公式包含错误”。我不能做任何事情让它接受这个公式。
=Sheet1!$C$1:$C$3
接下来,我分别用公式和创建了命名范围“TrendRange”和“TrendFormula” =TREND(Sheet1!$B$1:$B$3,Sheet1!$A$1:$A$3,Sheet1!$A$1:$A$3)
。
再次,=OFFSET(TrendRange,1,0)
给出正确的结果,但=OFFSET(TrendFormula,1,0)
没有(结果为#VALUE!
)。
有一个简单的测试似乎总能确定 OFFSET 何时会出现此问题。如果=CELL("address", xxx)
或=AREAS(xxx)
结果为#VALUE!
,则 xxx 部分不能用于 OFFSET。
有没有办法解决?我尝试使用 LINEST 和 SLOPE/INTERCEPT 而不是 TREND,但我得到了相同的结果。
excel - Excel中具有命名范围的动态超链接
我已经寻找了一个解决方案,我相信我想做的事情是可能的(或者可能不是),但我似乎无法让它发挥作用。
问题的概要如下。我在工作表数据的 A 列中有一些数据,A 列中的值不是唯一的。在工作表使用情况中,我在 A 列中有另一组数据,这是工作表数据中数据的唯一列表。我想在数据表中的单元格上创建一个超链接,并根据在数据表中单击的单元格的值将我带到使用表中的相应单元格的超链接。原则上,设置多个超链接很简单,但是当使用表中的数据重新排序时,超链接不会与它们一起重新排序,因此超链接指向错误的单元格。
在搜索互联网之后,似乎设置动态命名范围并超链接到所述命名范围将解决问题,因为命名范围将使用使用表中的值进行排序。我定义了一个新的命名范围,让我们称之为“matchRange”并对其应用以下引用:
我知道这是可行的,因为如果我在一个单元格中应用这个公式,它会返回 1115。现在,如果我转到数据表中的单元格并在包含 1115 的单元格上插入一个超链接,我在定义的名称中看不到“matchRange”名称插入超链接部分。所以我想我问我是否应该能够看到这个名字来附加超链接?如果我只是为一个单元格创建一个名称范围,那么我可以将一个超链接附加到我为它定义的名称上。
只是指出我不想为此在单元格中使用超链接公式。
希望这是有道理的,任何帮助将不胜感激。谢谢
asp.net - 向现有 Excel 表添加新行时图表不会更新(不必使用命名范围)
我对使用 closedXMl 和 Excel 也很陌生(至少为此目的),如果我问愚蠢的问题,我很抱歉。
我知道 closedXML 还不支持图表,所以唯一想到解决这个问题的是使用excel table创建我的图表。这样,我认为 ClosedXML 会在我插入新行时更新范围,并且图表会选择它。好吧,它没有。至少当我使用 closedXML 库从代码中添加行时不会。
奇怪的是,从 excel 中添加新行会自动更新图表,但如果我想从代码中获得相同的结果,我必须使用 OFFSET 公式和命名范围,然后将图表源数据设置为这些命名范围。这就是为什么我想知道我用来插入新行的代码是否有问题:
如您所见,代码非常简单,模板也很简单,它只包含两列:“Year”(table1[Year])和“Sales”(Table1[Sales]
我认为这与我的模板没有任何关系,因为正如我告诉你的那样,直接从 excel 添加新行按预期工作,只有当我从代码生成表格时,图表系列才不包含新行添加的
有必要手动添加新范围(Sheet1!Table1[Sales]和Sheet1!Table1[Year]),因为它只包括第一行(插入表格时默认添加的行)
任何帮助将非常感激
PS 这是一个包含完整代码以及 excel 模板的 rar链接(\Templates\MyTemplate.xlsx)
performance - Excel VBA - 常量字符串范围或定义范围名称之间的任何性能优势?
节日,
我有一个问题要帮助我更多地了解 Excel VBA 如何有效地管理已在一个地方声明的已定义范围,以便很好地执行数据。只是想在更多地研究这个项目之前确定哪两个选项(我到目前为止知道)更好或不是首选的最佳实践。
我要解决的问题是制作一个小表,其中包含一组虚构供应商的许多故障,因此该表看起来像这样(对不起,它是原始形式)
“公司名称” “故障数”
“Be Cool Machine” 7
“Coolant Quarters” 5
“Little Water Coolants” 3
“Air Mover Systems” 7
“Generals Coolant” 5
“Admire Coolants” 4
我的第一个选项(常量字符串)是这个模块/公式,如下所示。
第二个选项(定义名称)是这个模块/公式,如下所示。
任何建议 - 如果这有帮助,我稍后会做一个宏计时器测试?
如果我将单元格中列出的范围作为值获取,是否还有第三种选择?我还没有看到在实践中执行此操作的代码?
excel - 在 Excel 公式中引用动态命名范围
我在 Excel 中有一个表格,其列标题对应于我工作簿中其他地方的动态命名范围的一部分。例如,我有这些列标题:“10”、“20”等,以及这些动态命名范围:“ExampleRange10”、“ExampleRange2”等。我想通过连接输入引用 ExampleRange10 的 VLookup 公式字符串“ExampleRange”和列标题“10”。这将允许我简单地将公式扩展到表中的所有列,而不是在每列的公式中手动键入“ExampleRange10”、“ExampleRange20”等。
我知道 INDIRECT 函数,并且过去曾成功地将其用于命名范围,但在这种情况下,它似乎不适用于动态命名范围。我猜这是一个细微差别,与 Excel 如何定义动态命名范围有关(它们不会显示在公式栏左侧的命名范围下拉列表中,并且它们在 VBA 中有一些有趣的属性, 例如)。有没有一种方法可以将 INDIRECT 公式与动态命名范围结合使用,或者是否有另一种方法可以解决这个问题?
编辑:这是使用的确切公式。
这是主要公式:=VLOOKUP(B2,INDIRECT("ExampleRange"&C1),2,FALSE)
其中 C1 包含“10”,而我的名为“ExampleRange10”的动态命名范围的公式是:=OFFSET(Sheet1!$F$2,0,0,COUNTA(Sheet1!$F$2:$F$25),2)
。主公式返回“#REF!”,但当我删除动态命名范围公式并简单地将“ExampleRange10”定义为静态范围时,它可以正常工作。
excel - 如果用户选择的单元格不在一系列命名范围内,则 VBA 结束
我遇到了一些 Select Case 的问题。我的程序使用命名范围。如果选择案例不在一系列命名范围内,我希望它结束。这是我在用户选择有效单元格时正确运行的代码:
所以基本上,如果它不在上述任何范围内,我希望程序结束。我确信有更好的方法来做我正在尝试的事情,但我正在自学这一切,所以我确信它并不完美。
excel - 在excel中使用条件命名范围
让我再试一次,我一直在网上搜索,似乎找不到任何东西。我想要做的是在 excel 中有一个基于另一个单元格值的命名范围列表条件。当我设置数据验证并将所有 IF 语句放在源文本框中时遇到字符限制的问题。如果我只设置两个条件,它似乎可以正常工作,但这对我不起作用。这是我的示例数据,基于我想要显示它的有效子项的 B 列值。就像我提到的那样,我在 B 列中有 20 个左右不同的可能值。
当我尝试在 C1 列上设置我的数据验证列表时,我输入了以下内容......
我只能输入我的 IF 条件的一半。我尝试了 VLOOKUP,但它只允许将 1 个值放在 C 列中,我希望它是一个下拉列表。任何帮助将不胜感激。
excel - 遍历名称并删除与指定模式不匹配的名称
我有一个 Excel 工作簿,我在其中从其他几个工作簿中导入工作表,然后将这些工作簿中的数据合并到一个“概述”工作表中。我对 vba 还很陌生,所以这项任务花费了相当长的时间和大量的研究。但是我有一个问题我无法解决或找不到答案,但我认为如果你知道如何解决它应该相当简单。(所以希望有人这样做。)问题:当我导入工作表时,我还导入了很多不需要的命名范围。我试图通过运行一个删除它们而不删除我指定的宏来删除它们,但它对我不起作用。
任何帮助深表感谢