excel - Range.Columns 和 Range.EntireColumn 之间有什么区别

标签 excel vba

Dim r as Range
Set r = Range("C2:D3")

Dim r1 as Range, r2 as Range
Set r1 = r.EntireColumn
Set r2 = r.Columns

这两个范围不都代表范围“C:D”吗?两者有什么区别?

最佳答案

否,EntireColumn 代表范围“C:D”,Columns 代表该范围内单元格的列。如果你想看看它的实际效果,这里有一个小子展示了这一点。在整个范围 C2:D3 中放置非零值,然后在 C5 和 D5 中放置一些非零值。 C5 和 D5 中的值不会随着 Columns (range1) 的变化而改变,现在替换 EntireColumn (range2) 并看看会发生什么。

Sub Test()

Dim range1 As Range
Dim range2 As Range

    Set range1 = Range("C2:D3").Columns
    Set range2 = Range("C2:D3").EntireColumn

    range1.Value = 0

End Sub

此外,Columns 已建立索引,因此您可以引用第一列,例如:

r.Columns(1)

关于excel - Range.Columns 和 Range.EntireColumn 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3058062/

相关文章:

excel - 动态更改功能区的按钮标签 Excel

vba - 哪个更快,变量或直接访问单元格值?

excel - VBA删除不包含特定值的行的更快或最佳选择?

excel - 使用图标集和公式进行条件格式设置

regex - Excel VBA 正则表达式 : Format cell to Bold if starts with three spaces

vba - 从 Outlook 宏运行 Excel 宏?

c# - 是否有像 jXLS 一样使用 c# 和 Excel Interops 模板 excel 的预先存在的解决方案?

sql - 使用 VBA 运行多个 SQL 查询 (Oracle) - 为什么这么慢?

html - 将 Outlook 邮件中的文本设置为粗体和全部大写

vba - 对象模块中已存在 Visual Basic 成员