请解释excel VBA 代码

Sub 将Sheet1的A列的非空值写到Sheet2的A列()
Sheet1.Columns("A:A").SpecialCells(2, 23).SpecialCells(12).Copy Sheet2.[A1]
End Sub

特别是这句代码的含义SpecialCells(2, 23).SpecialCells(12),谢谢你!

SpecialCells(2, 23)
2 是常量23是4种常量.
12是可见单元格.

另外你最好看下帮助.

Excel 开发人员参考
Range.SpecialCells 方法
返回一个 Range 对象,该对象代表与指定类型和值匹配的所有单元格。
语法

表达式.SpecialCells(Type, Value)

表达式 一个代表 Range 对象的变量。

参数

名称 必选/可选 数据类型 说明
Type 必选 XlCellType 要包含的单元格。
Value 可选 Variant 如果 Type 为 xlCellTypeConstants 或 xlCellTypeFormulas,则该参数可用于确定结果中应包含哪几类单元格。将这些值相加可使此方法返回多种类型的单元格。默认情况下,将选择所有常量或公式,无论类型如何。

返回值
Range

说明

XlCellType 常量 值
xlCellTypeAllFormatConditions:任意格式单元格 -4172
xlCellTypeAllValidation:含有验证条件的单元格 -4174
xlCellTypeBlanks:空单元格 4
xlCellTypeComments:含有注释的单元格 -4144
xlCellTypeConstants:含有常量的单元格 2
xlCellTypeFormulas:含有公式的单元格 -4123
xlCellTypeLastCell:已用区域中的最后一个单元格 11
xlCellTypeSameFormatConditions:含有相同格式的单元格 -4173
xlCellTypeSameValidation:含有相同验证条件的单元格 -4175
xlCellTypeVisible:所有可见单元格 12

XlSpecialCellsValue 常量 值
xlErrors 16
xlLogical 4
xlNumbers 1
xlTextValues 2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-02
Sheet1.Columns("A:A").SpecialCells(2, 23).SpecialCells(12).Copy Sheet2.[A1]
1.选择sheet1
2.选择a列
3.cells(2,23)就是单元格第2行、23列(a~z字母顺数"z=26")本回答被网友采纳
第2个回答  2012-03-10
这句代码要分成三部分来分析
1、先看“Sheet1.Columns("A:A")”,为了理解方便,这部分我们给它取个名字叫“表达式1”,表示要操作的内容。
2、第二部分“SpecialCells(2, 23)”,表示用什么方法去操作它前面的“表达式1”,其中的参数“2”表示“含有常量的单元格”,参数“23”表示“所有类型”的值,其实这个“23”也可以省略。这部分与“表达式1”结合后,就表示对“表达式1”部分进行“选择”操作,操作的方法是只对其中的常量单元格进行。
为了方便描述,然后再将“表格式1.SpecialCells(2, 23)”取名为“表格式2”。
3、当执行完成前两部分后,代码将变成“表达式2.SpecialCells(12)”,其中的参数“12”表示“可见单元格”。这一步的操作对象是前面第二部分,将第二部分中的“可见单元格”选择出来,以便后面的代码“拷贝”。
相似回答