vba - 当选择整行时,为什么 Selection.EntireColumn.Address 返回行引用?

标签 vba excel rows

如果我手动选择任意行,例如 4:4,然后在“立即” Pane 中使用:

?Selection.EntireColumn.Address
$1:$1048576

这不是我期望的专栏引用。

但是,如果手动选择任意列,例如 D:D,然后在“立即” Pane 中使用:

?Selection.EntireRow.Address
$1:$1048576

确实获得了预期的行引用。

行是否更占主导地位?是否有行列之战

最佳答案

答案就在 Range.EntireColumn 的文档中(强调我的):

Returns a Range object that represents the entire column (or columns) that contains the specified range.

当您选择整行时,包含每行和每列交集的唯一范围是整个工作表。

同样的事情显然也适用于EntireRow - 当您选择整个列时,每列和每行的交集就是整个工作表。

此时,Excel 如何显示地址并不重要(事实上,ActiveSheet.Cells.Address 也会输出 $1:$1048576 也是如此) >范围("$A:$XFD").地址)。唯一真正重要的是它们是可逆的 - 也就是说,您可以获取 .Address 的输出,并通过将其传递给 Range() 来获取相同的内容.

它归结为Range("$1:$1048576").Address = Range("$A:$XFD").Address。当 Excel 构建反馈给您的地址时,所需要处理的只是 Range 本身。因此,在这个独特的实例中,它有 2 个可供选择,它只是选择一个。行表示法与列表示法一样有意义,并且在 .Cell(r, c) 寻址中排在第一位,所以为什么不呢?就偏好而言,我实际上很高兴他们做出这个调用 - 我从来不记得 XFD 是最大列地址...

还请记住,Range 对象没有关于它来自何处的信息,因此它不知道它是用对 EntireRow 的调用,而不是对 EntireColumn 的调用。 用户的期望可能不同,但用户拥有比范围更多的上下文。

关于vba - 当选择整行时,为什么 Selection.EntireColumn.Address 返回行引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38777170/

相关文章:

vba - 如何在VBA中找到除行有特殊词的最小值行

excel - 删除 Excel 单元格中的换行符、回车符和所有前导空格

excel - 如何设置直方图x轴的最大和最小比例?

php - 使用php将上传的excel文件转换为csv

vba - 如何从另一个 Excel 实例引用工作簿

excel - 复制图像 - Excel VBA

html - 如何在我的网站上正确使用 Bootstrap ?

html - 行高显示不正确

php - 第一行查询故障?

vba - Excel VBA 如果然后没有正确评估