vba 问题:“Intersect(Columns(1), Range("B:D").SpecialCells(xlCellTypeConstants).EntireRow) = 1”

在excel 的vba中 有段代码是这样的Sub 第1题()Intersect(Columns(1), Range("B:D").SpecialCells(xlCellTypeConstants).EntireRow) = 1End Sub程序的作用如图:问题:intersect 的作用是贯穿 第1列 与B到D列的。但是后面居然是“=1”。但是EntireRow又在Intersect的括号里面。一句话,函数的作用都明确,就是看不明白为什么这样组合在一起都可以顺利运作。
2026年09月26日 10:59
有2个网友回答
网友(1):

Columns(1)表示工作表的第1列
Range("B:D")这个表示B:D列的区域
SpecialCells(xlCellTypeConstants)这个是range的一个方法(详见帮助中Range.SpecialCells方法),作用是选择某一类型的所有单元格,其中xlCellTypeConstants指定类型为常量,返回值类型也为range
.EntireRow表示一整行
Range("B:D").SpecialCells(xlCellTypeConstants).EntireRow整体意思就是在B:D列里选择含有常量的整行(这些常量表示直接输入单元格里的数据,包括数值,文本等,不含公式)
Intersect方法表示参数区域的重叠区域,即包含常量数据的整行和工作表第一列的交叉区域,也就是所有包含常对应行的A列单元格
最后=1,全部赋值为1

全是看帮助看的,帮助还是很强大的

网友(2):

两个单元格区域共同的区域并集
'Application.Intersect(Columns("b:c"),Rows("3:5")).Select Intersect是相交、交叉的意思,用法很简单,找出两个区域的并集。
'Application对象是Excel对象模型中最高层级的对象,代表Excel应用程序自身。这里的Application是可以省略的。

'intersect 英[??nt??sekt] 美 [??nt?r?sekt]
'v. 相交; 交叉; 横穿; 贯穿; 横断;