zoukankan      html  css  js  c++  java
  • 【VBA研究】用VBA取得EXCEL随意列有效行数

    作者:iamlaosong

    用VBA对Excel文件进行处理的时候,keyword段的列号编程时往往是不知道的。须要通过參数设定才干知道,因此。我们编程的时候,就不能用这种语句取有效行数:

        lineno = [B65536].End(xlUp).Row          '从下至上找有效行数

    上述语句中的列名“B”假设是变量。能够用字符串连接的方式实现,即:

        pos_ems = "C"
        lineno = Range(pos_ems & "65536").End(xlUp).Row

    假设给的是列号,则用下列语句:

       pos_ems = 3
       lineno = Cells(65536, pos_ems).End(xlUp).Row

    假设该列全部须要处理的单元格都有值。也能够用下列语句:

        lineno = [B1].End(xlDown).Row          '从找有效行数

    或者
        ineno = Cells(pos_fst, pos_ems).End(xlDown).Row
    语句中的pos_fst是有效数据的起始行,这个语句的优点是不用管工作表最大行数是65536还是1048576,缺点是假设有效数据仅仅有一行或者该列有空值的话。将取不到有效行数。这也是这样的方法不经常使用的主要原因。

    上述语句中的变量pos_ems能够读取单元格的值,以便面对不同文件时随时设置:

        pos_fst = Cells(2, 7)
        pos_ems = Cells(3, 7)
        pos_sav = Cells(4, 7)
        
        lineno = [B65536].End(xlUp).Row           '行数,文件数量
        
        For unit_num = 5 To lineno                 '文件循环
        
            datfile = Cells(unit_num, 2)                              '文件名
            datFullName = ThisWorkbook.Path & "" & datfile
            If Dir(datFullName, vbNormal) <> vbNullString Then
                Workbooks.Open Filename:=datFullName        '打开订单文件
                If Application.Version >= "12.0" And ActiveWorkbook.FileFormat = 51 Then
                    maxrow = Cells(1048576, pos_ems).End(xlUp).Row
                Else
                    maxrow = Cells(65536, pos_ems).End(xlUp).Row
                End If
            Else
                MsgBox "数据文件不存在。", vbOKOnly, "iamlaosong"
                Exit Sub
            End If
    
    。。



    Excel的版本号不同。最大行数和列数不同。2003版最大行数是65536行,最大列数是256列(最后一列IV)。Excel2007及以后的版本号最大行数是1048576行,最大列数是16384列(最后一列XFD)
    打开一个空白新建EXCEL表格,按CTRL+下箭头,能够查看到最大行数;按CTRL+右箭头,能够查看到最大列标(若想显示列数。可在最右一列的某单元格中输入=column()回车,出现数字就是最大列数)。


  • 相关阅读:
    实验一、DOS使用命令实验
    实验三、进程调度模拟程序
    实验四、存储管理
    实验二、作业调度模拟程序
    简单的DOS命令
    结构化方法和面向对象方法的比较
    jstree 取消选中父节点
    T4 模板代码生成
    基于Open XML 导出数据到Excel
    菜单(列存储转为行存储)
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6977862.html
Copyright © 2011-2022 走看看