Excel 宏录制与VBA编程 ——VBA编程技巧篇三 (未初始化Range判断、遍历工作表方法、工作表多行重复内容剔除)

未初始化Range的判断

有时候需要对已定义未初始化的range对象做判断

cpp 复制代码
dim curRange as range
If curRange Is Nothing Then
    debug.print("未初始化的..")
End If

遍历工作表方法

Chr(10):ASCII码中的换行键,相当于vbLF。

Chr(13):ASCII码中的回车键,相当于vbCR。

1、使用For...Next 语句遍历工作簿中所有的工作表

cpp 复制代码
Sub ShCount1()
    Dim c As Integer
    Dim i As Integer
    Dim s As String
    c = Worksheets.Count
    For i = 1 To c
        s = s & Worksheets(i).Name & Chr(13)
    Next
    MsgBox "工作簿中含有以下工作表:" & Chr(13) & s
End Sub

2、使用For Each...Next语句遍历工作簿中所有的工作表

cpp 复制代码
Sub ShCount2()
    Dim Sh As Worksheet
    Dim s As String
    For Each Sh In Worksheets
        s = s & Sh.Name & Chr(13)
    Next
    MsgBox "工作簿中含有以下工作表:" & Chr(13) & s
End Sub

工作表多行重复内容剔除

将a列内容拷贝到b列:将重复内容删除掉后拷贝

cpp 复制代码
Sub RunTest2()

    ' 将b列清理掉
    Range("b:b").Clear

    ' 将标题头拷贝到b列
    Range("a1").Copy Destination:=Range("b1")

    ' 计算末尾行号
    Dim EndRowNum As Integer
    EndRowNum = Range("a1").End(xlDown).Row
    
    ' 由后向前循环遍历
    Dim Num As Integer
    For Num = 2 To EndRowNum Step 1
        If WorksheetFunction.CountIf(Columns(2), Cells(Num, 1).Value) < 1 Then
            Cells(Num, 1).Copy Destination:=Cells(Range("b65535").End(xlUp).Row + 1, 2)
        End If
    Next

End Sub

关注

笔者 - jxd

相关推荐
唐沢3 小时前
Unity 读Excel,读取xlsx文件解决方案
unity·excel
一根稻草君3 小时前
利用poi写一个工具类导出逐级合并的单元格的Excel(通用)
java·excel
鱼钓猫的小鱼干5 小时前
table 表格转成 excell 导出
前端·vue·excel
域智盾-运营小韩7 小时前
excel技巧:excel文件怎么加密防止泄密?加密Excel文件的四种方法
excel
是小崔啊14 小时前
开源轮子 - EasyExcel02(深入实践)
java·开源·excel
龙虎榜小红牛系统1 天前
使用Excel制作通达信自定义“序列数据“
excel·股票·通达信
Py办公羊大侠1 天前
Excel批量设置行高,Excel表格设置自动换行后打印显示不全,Excel表格设置最合适的行高后打印显示不全,完美解决方案!!!
python·excel·打印·openpyxl·自动换行·显示不全
SixCandy1 天前
EXCEL使用宏实现筛选重复项并对该行进行填充内容的操作
办公软件·excel··wps
你走以后1 天前
excel中如何筛选一列中重复的内容,相同的内容只保留一次
excel
热心市民运维小孙2 天前
Ubuntu重命名默认账户
linux·ubuntu·excel