excel的vba:For Each rg In Range("a1:a" & Range("a65536").End(3).Row)是什么意思?

"a1:a"是表达什么,End(3)的3是什么意思?我是想要保留excel每一个单元格的黑色字体。

Range("a65536").End(3) 代表从 A65536 单元格往前查找到的第一个有数据的单元格
Range("a65536").End(3).Row 表示A列单元格最下面一个有数据的单元格的行号,假定最后使用的单元格行号为20,则 "a1:a" 与后面的连起来就表示"a1:a20"这些单元格。End(3)这个3代表常量 xlup,表示向上搜索。
整句表示对A列有数据的单元格遍历一次(中间的空单元格也包括在内),可改为:
For Each rg In Range("a1",Range("a65536").End(3))
保留黑色字体与这个没有关系追问

非常感谢你的回答,真是醍醐灌顶,拨云见日,让我茅塞顿开。不过能否帮我写条保留当前表格所以单元格的黑色字体的vba程序,我将不胜感激涕零。

追答

没明白你的意思

追问

我想你帮我做一个excel文件,里面通过vba实现:将保留非空单元格的黑色文字。因为我的系统导出的数据在同一个单元格里面有的是黑色字体,有的是白色字体,白色字体是无用字体,但是会影响排序,所以保留非空单元格的黑色字体。

追答

Private Sub CommandButton1_Click()
Dim Ra As Range, I%
For Each Ra In Cells.SpecialCells(xlCellTypeConstants)
For I = Ra.Characters.Count To 1 Step -1
C = Ra.Characters(I, 1).Font.ColorIndex
If C xlAutomatic And C 1 Then Ra.Characters(I, 1).Delete
Next
Next
End Sub
运行上述代码,将当前工作表中不是黑色的字符全部删除

追问

非常感谢你,能交个朋友吗?希望你留下个qq号码。我现在没有去运行,但是我觉得你这样程序会删除整个单元格吧,我的实际问题是一个单元格中包含白色字体和黑色字体,我要保留这个单元格的黑色字体,而不是删除这个单元格。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-26

针对第一列中第一行到最后一行非空单元格区域的所有单元格进行循环操作。

    for each xx1in xx2

    是循环语句,对在xx2集合中的每一个元素进行后面的操作,最终以next结尾。

    range(“单元格地址”),指的是单元格区域。引号中使单元格地址,例如a1:b2等等。

    Range(“A65536”)为单元格,Range(“A65536”).end(3),向上区域的结束单元格。类似于在A65536单元格上进行Ctrl+向上箭头的操作。

    range(“”).row,返回行号

 

针对vba代码的帮助,可在光标所在区域按F1寻求帮助。

相似回答