问题标签 [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.

0 投票
3 回答
1941 浏览

vba - 从一个工作表复制范围根据另一工作表上的单元格值将部分范围粘贴到同一工作表中

现在,我创建了一个代码,用于根据另一张纸上的值将值从一个范围复制到另一个范围(复制和粘贴发生在一张纸上)。

但是因为这个值可以是十二个值之一,所以被复制和粘贴的范围会变小。

因为我不擅长 VBA,所以我在 Excel 中创建了几十个复制范围和几十个粘贴范围,以通过 VBA 处理 ElseIf 语句,以根据另一张表中的单元格值进行复制和粘贴。

我很好奇,有没有办法让我的代码更加优化并在我的工作簿中减少命名范围?

任何帮助将不胜感激,下面是我粘贴的代码(复制和粘贴的每个命名范围都只是少一列,因为第一张表中的选择可能是什么):

0 投票
1 回答
305 浏览

excel - EXCEL 2010 根据可能移动的命名范围构建图表

我正在努力寻找一个我认为很简单的解决方案。在一个单独的应用程序中,我正在复制一个 Excel 工作簿,运行一堆数据库查询并将结果转储到新复制的工作簿中,为每个结果指定一个定义的名称(命名范围)。

在 Excel“模板”(它不是真正的模板,只是复制的工作簿)中,在另一个工作表上,一些图表引用了命名范围。

当我最初构建“模板”时,我只是插入了一个图表并从“选择数据”选项中输入了命名范围作为数据源。图表看起来不错...

问题在于,将数据转储到 Excel 的应用程序并不总是将命名范围放在同一位置,并且图表似乎正在寻找引用的特定单元格范围(例如 =CategoryData!$A$23:$B$29而不是简单地 =nrCategoryTotals 这是我最初键入的命名范围。)。

所以问题是......无论如何我可以让图表始终指向命名范围,即使命名范围是在具有以下条件的不同位置创建的:1.没有用户交互(我实现手动移动命名范围没有这个问题,因为 Excel 处理更新) 2. 命名范围的位置和大小会有所不同,只有它出现的工作表是一致的

我希望这是有道理的?

铝。

0 投票
2 回答
1194 浏览

vba - VBA:命名范围

我一直在寻找解决方案,但似乎找不到。如果存在,请指点我。问题是如何在 VBA 中命名一个范围。

工作正常,但只要我把它改成

给我带来问题。请注意,wrkSheet 是前面定义的工作表对象。

谢谢

0 投票
1 回答
6409 浏览

vba - VBA:如何以编程方式创建指向以编程方式创建的工作表的命名范围?

看来这个问题也包含正确的答案,由于某些深不可测的原因,Excel 不会毫无错误地执行它。所以问题发生了一些变化:

为什么是 1004?

基本上我想使用类似的东西(这给我1004):

offer 是包含一些名称的字符串(是的,我希望工作表和命名范围都具有相同的名称 - 至少现在是这样)。会有未知数量的,所以我只是循环for each

Q:如何添加工作表信息RefersToR1C1,让命名范围指向某个工作表?(我知道'Sheetname'!A1:A10 语法,但如果可能的话,我想用 Sheet/Range/Cell 对象来做到这一点)

0 投票
1 回答
5116 浏览

excel - Create chart title from sheetname

I am hoping to amend my charts using VBA

I have created a Named Range using formula, named it SheetNames

Then in VBA, I was trying to change the chart title:

But unsuccessful. I tried using a formula to call teh sheet name in cell B1 and it works

then in VBA using the follow and work well:

What could I do to make the first bit works?

0 投票
2 回答
8967 浏览

vba - 更改命名范围(单元格)时如何调用宏

当名为“RE_1”的单元格发生更改(即它们在单元格中标记一个 X)时,我试图调用一个名为“RE_environmental”的宏。我已经尝试了几种不同的代码变体,包括这两个,但没有任何反应:

[如果我使用确切的单元格位置而不是命名单元格,则第一个代码确实有效。--> $E$62]

--感谢高级版,如果您需要更多信息,请告诉我。

0 投票
1 回答
6011 浏览

excel - 将 INDIRECT() 用于图表系列公式

我正在寻找我正在尝试创建的动态图的一些帮助。

首先,我使用以下公式创建了一个名为 PerX 的命名范围。

当我将图表系列值分配给此公式时,图表工作正常。耶!

但是,当我尝试使用以下公式间接引用不同的工作表名称时,不会显示任何内容。(工作表名称“图表”上的单元格 A1 中的值是我试图从中提取数据的另一张工作表的名称)

谁能确定我做错了什么或者我想做的事情是否可行?

谢谢一堆

克里斯

0 投票
2 回答
5203 浏览

vba - Excel VBA:工作簿范围,工作表依赖的命名公式/命名范围(结果根据活动工作表而变化)

编辑:为清楚起见,标题已更改。

快速总结:我想知道工作簿范围的、工作表相关的命名公式(我将在下面描述)的行为是否是 Excel 中的一个记录功能。如果是这样,请在某处指出一些文档的方向-我似乎无法在网上找到任何关于此的内容(也许我使用了错误的搜索词..?)并且不想使用实际上是的东西一个错误,可能会在以后的版本中消失!

严格来说,这并不是一个关于 VBA 的问题。但是,命名公式是我和其他人一直在 VBA 代码中使用的东西,所以它仍然适用于我认为的主题。

编辑:请注意,下面的 VBA 代码可能并不完全正确——我还没有测试过。

常规方法

对于工程/科学计算,我经常需要在同一个工作簿中多次使用相同的命名公式/范围,但在不同的工作表上。作为一个简化的例子,我可能会为圆形区域实现类似的东西:

这会产生以下一组命名范围/公式(范围仅限于每个工作表):

这当然可以正常工作,但它的主要缺点是难以进行未来的更改。因此,例如,如果公式发生变化(圆的面积当然不会改变!但是 AASHTO LRFD 高速公路设计代码中的公式,例如,几乎每个版本都会改​​变!),我必须编辑每个实例每一个名称公式。这很乏味,即使我编写了一个 VBA 程序来为我做这件事。

替代方法

前几天我在 Excel 2013 中意外发现了以下内容,但在网上的任何地方都找不到任何关于它的信息。这让我犹豫是否要开始使用它。

假设我运行以下单行代码:

这导致以下单个命名范围/公式(范围为工作簿):

=PI()*!Radius^2<--- 公式范围为工作簿;注意!Radius,不是Radius

请注意,这与以下内容不同(没有感叹号):

=PI()*Radius^2<--- 请注意,这里Radius的范围是工作簿。

现在,AreaCircle将产生与上述第一种方法完全相同的行为:它将产生基于本地工作表定义的 Radius 值的结果。因此,如果有两个命名范围被称为Radius(一个 forSheet1和一个 for Sheet2),AreaCircle将根据Radius使用它的工作表中的值来计算。并且每次添加新工作表时,我不再需要添加此(以及其他所有!)公式的新版本(这是巨大的!)。

这是难以描述的行为;如果您对我的描述感到困惑,可以执行以下步骤来重新创建此行为:

  1. 在一个工作簿中,创建两个或多个工作表,然后在 的单元格中输入“1”,在Sheet2的单元格A1中输入“ Sheet12”,在Sheet3 的单元格中输入“3”等。A1A1
  2. 创建一个名为CellA1(具有工作簿范围)的命名范围,并为公式输入以下内容:=!$A$1
  3. 输入=CellA1任何单元格将导致“1”打开Sheet1,导致“2”打开Sheet2,等等。

文档?

嘿,你成功了——谢谢你一直陪着我!

那么,正如我上面所说,有人可以指点我这个“功能”的文档吗?我很想在我的一些更复杂的项目中开始实施它;如果不出意外,它只会使名称管理器更容易导航 20 倍(没有所有重复的名称)。

0 投票
1 回答
1331 浏览

vba - 在哪里放置 xlam 文件的参考内容

所以我有一个 excel 插件,除其他外,它包含大量别名。例如,国家名称及其 ISO 代码、国家及其大陆等(这样我就可以很容易地知道加拿大在美国或科特迪瓦的国家语言是法语等)。目前,我的 xlam 具有检查另一个工作簿中命名范围的所有相关功能。

总结一下,我有2个文件:

  • macros.xls(具有所有命名范围,例如 Angola = AGO 等),以及
  • my_functions.xlam(具有我可以从 excel 调用以获取别名的函数)。一个示例函数是:

    函数 nti(v) nti = WorksheetFunction.VLookup(Trim(v), Range("macros.xls!nti"), 2, 0) 结束函数

其中nti是我使用的函数,而macros.xls!nti是我引用的命名范围。

这一切都很好,但这意味着此功能需要两个文件,因为无法在 Excel 中打开和编辑 .xlam 文件,只能在 VBA 资源管理器中打开和编辑。

问题:我怎样才能在一个文件中拥有一个容易修改的列表和引用这些列表的函数?这些功能应该可用于我正在处理的其他文件。

不合格解决方案:

  • 将 my_functions.xlam 临时另存为 .xls,复制所有命名范围,然后将其另存为 .xlam。每次我想更改命名范围(这是相当频繁的)时,这样做会很烦人。
  • 将一堆包含所有别名的 2 列数组硬编码到每个函数中(有时长达数千行)。请告诉我有更性感的方式...

提前致谢!

0 投票
3 回答
5001 浏览

excel - 从命名范围/公式返回一个值(错误 1004、2015 或 13)

我无法从 Excel VBA 中的命名公式返回值(一个简单的命名范围按预期工作)。

重新创建的步骤

  1. 空白工作簿
  2. 创建命名范围/公式rowOffset等于:

    /li>
  3. rowOffset按预期进行评估(等于 1)

但是,我一直无法弄清楚如何返回rowOffsetVBA 内部的值。

有错误的示例代码

为什么上面的代码在这种特定情况下不起作用,但对具有定义的命名范围起作用=$A$1(如预期的那样返回 A1 的值)?

编辑:感谢 Simoco 的(非常简单!)答案。通过当地人的窗口一趟,我应该能够自己解决这个问题!哈哈。