gpt4 book ai didi

vba - 为什么选择之前必须激活 Excel 工作表?

转载 作者:行者123 更新时间:2023-12-02 07:32:35 43 4
gpt4 key购买 nike

这段代码

Sheets(1).Activate
Sheets(2).Range("A1").Select

在 VBA 中会失败,因为您只能在 Active 对象上使用 Select。我明白是这样的。

Excel 数据模型的哪些元素导致出现这种情况?我认为用户/编码者在使用Select之前立即Activate任何对象有一个隐含的意图 - 我不明白为什么VBA不会做出这个假设,并且,我假设这种区别存在是有原因的。

  • Excel 数据模型的哪一部分会阻止在未激活的情况下进行选择?

最佳答案

正如 brettdj 所指出的,您不必激活工作表来选择范围。这里有一个引用,其中包含大量的 examples for selecting cells/ranges .

现在为什么我必须先激活工作表?我不认为这是数据模型的错误,而只是范围选择方法的限制。

从实验来看,在 Excel 中选择范围有两个要求。

  1. Excel 必须能够更新 UI 以指示所选择的内容。
  2. 父范围(即工作表)必须处于事件状态。

为了支持这一说法,您也无法从隐藏工作表中选择单元格。

Sheets(1).Visible = False
Sheets(1).Activate
'The next line fails because the Range cannot be selected.
Sheets(1).Range("A1").Select

简单地说,当涉及到范围时,你无法选择一个你看不到的范围。

我会声称这是选择全部的限制,除非您实际上可以选择隐藏工作表中的对象。愚蠢的Excel。

关于vba - 为什么选择之前必须激活 Excel 工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12699987/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com