作者: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()回车,出现数字就是最大列数)。

【VBA研究】用VBA取得EXCEL随意列有效行数的更多相关文章

  1. VBA取得EXCEL表格中的行数和列数

    VBA取得EXCEL表格中的行数和列数 初学EXCEL宏的童鞋,总是很想知道表格中含有数据的行数和列数,尤其是行数和列数不确定的情况下.这样可以避免很多的错误,并且可以提高效率.但每次用到的时候到网上 ...

  2. C# 获取打开的EXCEL中某列的行数

    背景 在通过C#操作EXCEL时 获取行数 int iRowCount = worksheet.get_Range("A65535", oMissing).get_End(MExc ...

  3. 【VBA研究】VBA自己定义函数參数类型不符的错误

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/iamlaosong/article/details/36871769 作者:iamlaosong 1 ...

  4. 【VBA研究】VBA通过HTTP协议实现邮件轨迹跟踪查询

    作者:iamlasong 1.接口说明 通过互联网訪问,运单跟踪信息查询接口基于HTTP协议开发,接口为RESTFul风格的Web Service,信息交互过程为用户按我方提供的web service ...

  5. Office EXCEL VBA如何取得EXCEL中的行数和列数

    VBA取得EXCEL表格中的行数和列数 请注意不要使用Columus等关键字作为变量,例如"Columus = ActiveSheet.UsedRange.Columns.Count&quo ...

  6. 用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法

    用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count Ac ...

  7. excel VBA返回选中单元格区域的行数、列数,以及活动单元格的行号和列号

    Private Sub Worksheet_SelectionChange(ByVal Target As Range) '可以直接sub(),不然选择就会触发vba    Dim rows_coun ...

  8. VBA嘘嘘嘘(1)——将Excel数据填入到已存在的Word模板表格(实例应用)

    傻瓜可以写出机器读懂得代码,但写出让人能读懂的代码的是优秀程序员 Sub 填充() Application.ScreenUpdating = False 'ScreenUpdating 是控制你的ex ...

  9. excel vba 实现跨表单(sheet) 搜索 - 显示搜索行记录搜索历史

    前两天,一个朋友问我,有没有办法在excel里实现一个表单里是原始数据,在另一个表单里显示搜索到的行,搜索关键词可用~分隔开,并把搜索历史记录下来? 我想了想,用vba实现肯定可以啊,但是我又在想,有 ...

随机推荐

  1. 如何让iframe背景色透明框架页文件设置

    如何让iframe背景色透明框架页文件设置:<body style="background-color:transparent" > 或 <body bgColo ...

  2. WebSocket 前端封装

    $.extend({ socketWeb:function (opt) { if("WebSocket" in window){ var setting=$.extend({ ur ...

  3. 51nod 1321 收集点心(最小割)

    给出一种最小割的方法. 设\(num1[i]\),\(num2[i]\)为第i种形状的点心的两种口味的数量 设\(type[i]\),\(type[i]\)为第i种形状的点心的两种口味 假设\(num ...

  4. Python3+Gurobi使用教程(一)

    Gurobi使用教程 1.Gurobi使用的一般框架 from gurobipy import * try: m=Model('modelname') except GurobiError: prin ...

  5. Qt之QStackedWidget

    简述 QStackedWidget继承自QFrame. QStackedWidget类提供了多页面切换的布局,一次只能看到一个界面. QStackedWidget可用于创建类似于QTabWidget提 ...

  6. Maven搭建之后的设置

    Maven搭建之后的设置 1,设置环境变量M2_HOME=D:\Java\apache-maven-3.3.9, MAVEN_OPTS=-Xms128m -Xmx512m 在path中,添加D:\Ja ...

  7. hadoop-03-安装java

    hadoop-03-安装java 1,su root 2, rpm -qa|grep jdk #查看已经安装的jdk 3,rpm -e --nodeps `rpm -qa|grep jdk ` #删除 ...

  8. Android 主界面长按创建快捷方式

    Android中创建快捷方式主要有两种方式.一是在代码中直接加入生成桌面快捷方式的代码:二是通过小部件加入; 这篇文章主要讲另外一种方法! 1.通过在AndroidManifest文件里为Activi ...

  9. mysql-增删改数据

    一.增加操作 INSERT用来插入或添加行到数据库表的.插入用以下几种方式: 1.插入完整的行 insert into customers values(null,'Pep E,LaPew','100 ...

  10. mysql-数据分组

    一.创建分组 上面所讲的语句都是建立在表的所有数据或匹配特定的where子句的数据上进行的.是否能够进行分组,在进行汇总计算哪儿?例如:要想返回每个供应商提供的产品数目怎么办? 分组是在select语 ...