【发布时间】:2015-06-04 18:48:07
【问题描述】:
我正在编写一些 Python 代码来自动处理 Excel 电子表格。这个想法是使用电子表格模板来创建每日报告。几年前使用 Perl 看到了这个想法。无论如何。
以下是简单的规则: 带有工作簿的工作表按照它们出现的顺序进行处理。 在工作表中,单元格从左到右,然后从上到下进行处理。 定义的名称是单个单元格范围,可以包含静态值或查询结果。单元格可以包含包含要运行的 SQL 查询的 cmets。 ...
这是问题所在,当我处理单元格时,我需要检查单元格是否有附加注释以及单元格是否有名称。我能够处理附加的细胞 cmets。但我不知道如何确定单元格是否在命名范围内。在我的情况下,范围内的单个单元格。
我看到一个帖子建议这会起作用: cellName = ws.ActiveCell.Name.Name 没有运气。
有人知道怎么做吗? 我很近,但没有雪茄。
感谢您对此事的关注。
KD
【问题讨论】:
-
不确定它是否有用,但在 VBA 中你会这样做:
Intersect(ActiveCell, Range("MyRange"))。如果它们相交则返回范围对象,否则返回Nothing。 -
是的,我在一些帖子中看到了这一点。这意味着我必须遍历工作簿中的名称范围并进行相交测试。希望有更优雅的东西。感谢您的建议。
-
“没有运气”是什么意思?
ActiveCell.Name应该适合你。如果这产生错误,则单元格本身没有名称。要获得实际名称,您可以:ActiveCell.Name.Name如您所说。同样,这是在 Excel VBA 中。我不知道winapi。 -
ActiveCell.Name.Name 抛出了一个错误。哦,也许这是意料之中的。我会再试一次。
-
只有在
ActiveCell没有名字的情况下才会报错。