加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VBA代码精选(1):最大行号和最大列号

(2021-09-30 08:49:32)
标签:

excel

office365

vba

分类: Excel相关
  此系列VBA代码大部来自网络,有部分是自己写的,已实践过,可以使用。我所用系统平台是win10+office365,64位,但绝大部分代码可以用在32位系统中。
       最大行号和最大列号应该是VBA代码中最常用的吧,所以,放在第一篇。

Sub 取最大行号()            '//都可以使用,2021.6.15,是获取最大行号的多种方法,可以根据情况选择使用
    Dim i&
    i = Range("a" & Rows.Count).End(xlUp).row               '//获取A列最大行号,不用知道标题行在第几行
    i = [a1].End(4).row                                            '//获取A列最大行号,需要知道标题行在第几行
    i = UsedRange.End(4).row                                '//当前区域中的最大行号
    i = Range("a" & Rows.Count).End(3).row         '//获取a列最大行号,不用知道标题行在第几行
    i = Range("a1").End(xlDown).row                     '//获取A列最大行号,需要知道标题行在第几行
    i = Range("b" & Rows.Count).End(xlUp).row    '//获取B列最大行号,不用知道标题行在第几行
    i = Cells(Rows.Count, "a").End(xlUp).row          '//获取A列最大行号,不用知道标题行在第几行
    i = Range("A" & Rows.Count).End(xlUp).row            '//获取A列最大行号,不用知道标题行在第几行
    i = ActiveSheet.UsedRange.Rows.Count                    '//获取当前区域中的最大行号
    i = ActiveSheet.Cells.SpecialCells(11).row                  '//获取当前工作表的最大行号。SpecialCells(11)表示已用区域中的最后一个单元格
    i = Columns("a:e").Find(What:="*", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, searchdirection:=xlPrevious).row          '//指定范围内的最大行号
    i = Cells.Find("*", , , , 1, 2).row           '//工作表最大行号
    i = Columns("b:b").Find("*", , , , , xlPrevious).row              '//B列最大行号
    i = Columns("b:b").Find("手续费", , , , , xlPrevious).row      '//B列中内容为"手续费"的行号
End Sub

Sub B列非0值数据的最大行号3()         '//求B列非0值数据最大行号,2021.6.24,速度快,优先使用,适合数据行数多于空值行的情况
    Dim zi&
    For zi = Range("B" & Rows.Count).End(xlUp).row To 3 Step -1
        If Cells(zi, 2).Value <> 0 Then Exit For
    Next
    [b2] = zi
End Sub

Sub B列非0值数据的最大行号4()         '//求B列非0值数据最大行号,2021.6.24,速度快,优先使用,适合数据行空值行少的的情况
    Dim zi&
    For zi = 3 To Cells(Rows.Count, "b").End(xlUp).row
        If Cells(zi, 2).Value = 0 Then Exit For
    Next
    [b2] = zi - 1
End Sub

Sub B列有数据的最大行号2()          '//求B列非0值数据最大行号,2021.6.23,速度还快的
    k = 3      '//标题行共3行
    For i = 4 To Range("B" & Rows.Count).End(xlUp).row
        If Cells(i, 2) <> 0 Then k = k + 1
    Next
    [b2] = k
End Sub

Sub 取最大列号()       '//都可以使用,2021.6.15
    j = Rows(3).Find("业务员已达到规模奖", , , , 2, 2).Column       '//第3行,业务员已达到规模奖的列号
    j = Rows(3).Find("*", , , , 2, 2).Column                                    '//最大列号,第三行是标题行
    j = Cells(1, Columns.Count).End(xlToLeft).Column                '//获取第一行的最大列号
    j = Range("a1").End(xlToRight).Column                                 '//获取第一行的最大列号
    j = Range("XFD1").End(xlToLeft).Column                               '//获取第一行的最大列号
    j = Cells(1, 255).End(xlToLeft).Column                                   '//获取第一行的最大列号
    j = ActiveSheet.Cells.SpecialCells(11).Column                       '//获取当前工作表的最大列号
End Sub

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有