获取excel多列区域最后非空单元格行数(VBA5练习2)[Excel精英培训网]
VBA技巧3 获得指定行、列中的最后一个非空单元格
技巧1 获得指定行、列中的最后一个非空单元格使用VBA对工作表进行操作时,经常需要定位到指定行或列中最后一个非空单元格,此时可以使用Range对象的End属性,在取得单元格对象后便能获得该单元格的相关属性,如单元格地址、行列号、数值等,如下面的代码所示。
#001 Sub LastRow()#002 Dim rng As Range#003 Set rng = Sheet1.Range("A65536").End(xlUp)#004 MsgBox "A列中最后一个非空单元格是" & rng.Address(0, 0) _#005 & ",行号" & rng.Row & ",数值" & rng.Value#006 Set rng = Nothing#007 End Sub代码解析:LastRow过程使用消息框显示工作表中A列最后非空单元格的地址、行号和数值。
End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。
等同于按键<End+向上键>、<End+向下键>、<End+向左键>或<End+向右键>,语法如下:expression.End(Direction)参数expression是必需的,一个有效的对象。
参数Direction是可选的,所要移动的方向,可以为表格1-1所示的XlDirection 常量之一。
表格1-1 XlDirection 常量Range对象的End属性返回的是一个Range对象,因此可以直接使用该对象的属性和方法。
运行LastRow过程结果如图1-1所示。
图1-1 获得A列最后一个非空单元格通过修改相应的参数,能够获得指定行中最后一个非空单元格,如下面的代码所示。
#001 Sub LastColumn()#002 Dim rng As Range#003 Set rng = Sheet1.Range("IV1").End(xlToLeft)#004 MsgBox "第一行中最后一个非空单元格是" & rng.Address(0, 0) _#005 & ",列号" & rng.Column & ",数值" & rng.Value#006 Set rng = Nothing#007 End Sub代码解析:LastColumn过程使用消息框显示工作表中第一行最后一个非空单元格的地址、列号和数值,如图1-2所示。
EXCEL如何获取某列中的最后一个非空的数值?
EXCEL如何获取某列中的最后一个非空的数值?EXCEL如何获取某列中的最后一个非空的数值?假如A列=INDEX(A:A,MAX(IF(A:A<>"",ROW(A:A)))) 写完后ctrl+shift+enter原理,列出A列所有不为空的单元格的行IF(A:A<>"",ROW(A:A) 求最大的行,即最后一个MAX(IF(A:A<>"",ROW(A:A))在A列里面符合要求的那个INDEX(A:A,MAX(IF(A:A<>"",ROW(A:A))))数组计算,所以要ctrl+shift+enterEXCEL如何获取某列中的最后一个数所要取的列里的数据必须是数字才可以用下面的公式放到一个文档里处理吧要不你没次都要同时打开这两个文档假设你第一个工作表是sheet1,第二个工作表是sheet2 那么在sheet1的A1中输入=LOOKUP(9E+307,Sheet2!E:E)就可以取到如果确定不能放在一个文件中,第一个文件名AAA第二个文件名BBB 那么在A1中输入=LOOKUP(9E+307,[BBB.xls]sheet1!E:E)excel如何获取某列中的最后一个数如果获取A列的最后一个数值,那么输入=LOOKUP(9E+307,A:A)Excel中如何获取某列(行)最后一个非空单元格的值获取D列最后一个非空数值单元格的值: =lookup(9e307,D:D)。
获取第7行最后一个非空数值单元格的值:lookup(9e307,7:7)。
获取D列最后一个非空文本单元格的值: =lookup(char(65535),D:D)获取第7行最后一个非空文本单元格的值:=loolup(char(65535),5:5) 关键:lookup函数9e307(Excel允许输入的最大数值。
vba程序中如何返回最后一列不为空
vba程序中,如何返回最后一列不为空vba程序中,如何返回最后一列不为空的列的列号[Microsoft Excel精英论坛]Nextcol=Cells(1,255).End(xlToLeft).Column'取从cells(1,255)向左查找到的第一个非空值单元格的列数,不含cells(1,255),与连续与否无关,没查到时返回第一列列号cells(1,columns.count).end(xltoleft).column 返回第一列列号Nextcol=Cells(1,1).End(xlToright).Column'取从cells(1,1)向右查找到的第一个非空值单元格的列数,不含cells(1,1),与连续与否无关,没查到时返回最后一列列号Nextcol=Cells(65536,1).End(xlup).row'取从cells(65536,1)向上查找到的第一个非空值单元格的行数,不含cells(65536,1),与连续与否无关,没查到时返回第一行行号Nextcol=Cells(1,1).End(xldown).row'取从cells(1,1)向下查找到的第一个非空值单元格的行数,不含cells(1,1),与连续与否无关,没查到时返回最后一行行号上面的方法不能判断隐藏行(如果最后几行隐藏会被漏过)**********************************************************************************************用VBA得到EXCEL表格中的行数和列数编程总结每种方法中上面的是Excel的行数,下面的是Excel的列数。
方法1:edRange.Rows.CountedRange.Columns.Count缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列)数据清除后(非整行或整列删除),用这个命令仍返回未清除前的值。
excel获取行内最后一列非空数据的函数
Excel 表格是一个非常常用的办公工具,它可以用来存储、处理和分析数据,而在 Excel 中获取行内最后一列非空数据的需求也是非常常见的。
本文将介绍几种可以用来实现这个功能的 Excel 函数和方法。
一、使用 INDEX 和 MATCH 函数INDEX 函数通常用于返回指定区域中的单元格的值,而 MATCH 函数则用于查找指定值在某个区域中的位置。
通过结合这两个函数,我们可以很方便地获取行内最后一列非空数据。
具体的公式如下:=INDEX($1:$1,MAX(IF($1:$1<>"",COLUMN($1:$1))))这个公式的作用是,在第 1 行中找到最后一个非空单元格,并返回其值。
其中 $1:$1 表示第 1 行,MAX 函数用于返回数组或数据集合中的最大值,IF 函数用于判断条件是否成立并返回相应的值,COLUMN 函数用于返回单元格的列号。
二、使用 LOOKUP 函数LOOKUP 函数也可以用来实现获取行内最后一列非空数据的功能。
具体的公式如下:=LOOKUP(2,1/(1:1<>""),1:1)这个公式的作用也是在第 1 行中找到最后一个非空单元格,并返回其值。
其中 2 是一个超出范围的值,1/(1:1<>"") 是一个数组公式,用来返回一个由 TRUE 和 FALSE 构成的数组,LOOKUP 函数将这个数组作为查找范围,当查找值大于查找范围中的所有值时,会返回查找范围中的最后一个值。
三、使用 VBA 宏除了以上介绍的函数和公式之外,我们还可以通过编写 VBA 宏来实现获取行内最后一列非空数据的功能。
具体的 VBA 代码如下:Sub GetLastNonEmptyCell()Dim lastCol As LonglastCol = Cells(1, Columns.Count).End(xlToLeft).ColumnMsgBox Cells(1, lastCol).ValueEnd Sub这段 VBA 代码的作用是找到第 1 行中最后一个非空单元格,并弹出其值。
EXCEL小技巧如何统计非空单元格
EXCEL小技巧如何统计非空单元格在Excel中,统计非空单元格是一个非常常见的任务。
这可以帮助我们计算有多少个有效的数据点,避免在计算和分析数据时出现错误。
以下是几种常用的Excel小技巧来统计非空单元格。
1.使用COUNTA函数:COUNTA函数可以用于统计选择范围中的非空单元格数量。
例如,假设我们有一列数据位于A1到A10单元格,我们想要统计其中的非空单元格数量,则可以使用以下函数:=COUNTA(A1:A10)这将返回A1到A10中的非空单元格数量。
2.使用COUNTIFS函数:COUNTIFS函数在满足给定条件的情况下统计单元格的数量。
如果我们想要统计其中一列中满足一些条件的非空单元格数量,可以使用COUNTIFS函数。
例如,假设我们想要统计A1到A10范围中大于0的非空单元格数量,则可以使用以下公式:=COUNTIFS(A1:A10,">0")这将返回A1到A10中满足大于0条件的非空单元格数量。
3.使用SUMPRODUCT函数:SUMPRODUCT函数可以用于计算数组中满足给定条件的单元格的数量。
如果我们想要统计A1到A10范围中非空单元格的数量,则可以使用以下公式:=SUMPRODUCT(--(A1:A10<>""))这将返回A1到A10中的非空单元格数量。
4.使用自动过滤:Excel的自动过滤功能可以帮助我们快速筛选非空单元格。
选择数据范围,然后点击“数据”选项卡上的“筛选”按钮。
这将为数据添加筛选下拉箭头。
点击箭头并选择“空白”选项将只显示非空单元格。
之后,我们可以查看筛选后的数据行数来获取非空单元格的数量。
5.使用条件格式化:条件格式化是一种在给定条件下格式化单元格的方法。
我们可以使用条件格式化来突出显示非空单元格。
选择数据范围,然后点击“开始”选项卡上的“条件格式化”按钮。
选择“新建规则”,然后选择“使用公式确定要格式化的单元格”。
行或列中最后一个非空单元格ExcelFans
行或列中最后一个非空单元格ExcelFans在Excel 中我们能够使用数组公式来找到行或列中的最后一个非空单元格。
然后再此通过单元格的地址并使用INDIRECT 函数就可以获取到此单元格的值。
取得一列中的最后一个非空行1、接下来的公式可以返回A列中最后一个非空单元格的行号:=MAX((A:A<>"")*(ROW(A:A)))2、通过这个行号我们就可以使用 ADDRESS 函数来获取到此单元格的地址:=ADDRESS(MAX((A:A<>"")*(ROW(A:A))),COLUMN(A:A))3、最后我们以此获取到的地址为基础使用INDIRECT 函数就可以获取到此单元格的值=INDIRECT(ADDRESS(MAX((A:A<>"")*(ROW(A:A))),COLUMN(A:A)))取得一行中的最后一个非空列1、接下来的公式和上面取得非空行的公式原理是一样的,它可以返回第一行中最后一个非空单元格的列号:=MAX((1:1<>"")*(COLUMN(1:1)))2、同理通过这个列号我们就可以使用 ADDRESS 函数来获取到此单元格的地址:=ADDRESS(1,MAX((1:1<>"")*COLUMN(1:1)),1)3、最后我们以此获取到的地址为基础使用 INDIRECT 函数就可以获取到此单元格的值=INDIRECT(ADDRESS(3,MAX((3:3<>"")*COLUMN(3:3)),1))注意:以上公式都是数组公式,所以你必须使用CTRL+SHIFT+ENTER 来输入这些公式,如果没有那就恭喜你——出错了^_^.。
怎样提取最后一列非空单元格内容?
怎样提取最后⼀列⾮空单元格内容?如图1,有多列数据,怎样提取最后⼀列⾮空单元格内容,⽐如,第2⾏最后⼀列⾮空单元格是B2,就把B2的内容提取出来,第5⾏最后⼀列⾮空单元格是A5,当⾏数很多的时候,⼀个个⼿⼯提取就⾮常慢,怎样快速提取呢?⽤函数Lookup轻松实现。
图1在D列输⼊公式=LOOKUP(2,1/(A2:C2<>""),A2:C2)我们先来看看lookup的基本语法,第1个参数lookup_value是要查找的值,第2个参数lookup_vector是在该数值值中查找,第3个参数result_vector返回该数组值中相对位置的值.如图2。
如果是找不到要查找的,会从后向前查找到⽐它⼩的值,如果找不到,则返回错误值。
注意:1、查找的区域必须按升序排列。
...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE2、查找的区域可以有错误值,但在查找时会被忽略图2我们再来看这个公式分解:1、以第2⾏公式为例,公式A2:C2<>"" ,返回的是数组true,true,false,选中公式标红的部分按F9可以看到;2、1/(true,true,false),得到数组(1,1,#DIV/0!)选中公式中标红的部分按F9可以看到;3、在数组(1,1,#DIV/0!)中查找⽐第⼀个参数2,查找不到2,返回⽐2⼩的值,错误值可以忽略,所以返回的是最后的1对应的B2单元格内容。
关于Lookup函数有些通⽤的公式返回对应的内容,汇总如下:A1:A20存放着数字、⽂本、错误值等,下列公式将返回:=LOOKUP(9E+307,A1:A20)返回数值=LOOKUP(9E+307,A1:A20,ROW(A1:A20))返回数值对应的⾏号=LOOKUP(2,1/(A1:A20<>""),A1:A20)返回⾮空单元格=LOOKUP(2,1/(A1:A20<>""),ROW(A1:A20))返回⾮空单元格的⾏号=LOOKUP(2,1/(A1:A20<>0),A1:A20)返回⾮零单元格=LOOKUP(2,1/(A1:A20<>0),ROW(A1:A20))返回⾮零单元格的⾏号=LOOKUP(2,1/(A1:A20="a"),A1:A20)返回指定⽂本单元格=LOOKUP(2,1/(A1:A20="a"),ROW(A1:A20))返回指定⽂本单元格的⾏号=LOOKUP(2,1/(1-ISBLANK(A1:A20)),A1:A20)返回⾮空单元格=LOOKUP(2,1/(1-ISBLANK(A1:A20)),ROW(A1:A20))返回⾮空单元格的⾏号=LOOKUP(2,1/((A1:A20<>0)*ISNUMBER(A1:A20)),A1:A20)返回不为零⾮空单元格=LOOKUP(2,1/((A1:A20<>0)*ISNUMBER(A1:A20)),ROW(A1:A20))返回不为零⾮空单元格的⾏号注1:为了确保公式通⽤,第1个参数始终⽐第2个⼤,所以上⾯的公式第⼀个参数都是2。
利用VBA查找excel中一行某列第一次不为空与最后一列不为空的列数
利⽤VBA查找excel中⼀⾏某列第⼀次不为空与最后⼀列不为空
的列数
昨⽇同事有需求,想知道每个商品第⼀次销售的⽉份,以及最后⼀次销售的⽉份. 本想通过什么excel函数来解决,但是找了半天也没找到合适的,最后还是通过VBA来解决吧.
使⽤⽅法:
Excel⼯具-宏-Visual Basic编辑器在左侧栏中点右键,
插⼊-模块
然后输⼊:
1Function Last0(ByVal Int_Row As Integer) As Integer
2 Last0 = 14
3Do While Cells(Int_Row, Last0) = ""And Last0 >= 3
4 Last0 = Last0 - 1
5Loop
6
7End Function
8
9 '这⾥需要注意的是函数的返回值貌似是变量必须与⽅法名⼀致很奇葩的要求....
10Function Frist0(ByVal Int_Row As Integer) As Integer
11 Frist0 = 3
12Do While Cells(Int_Row, Frist0) = ""And Frist0 <= 255
13 Frist0 = Frist0 + 1
14Loop
15If Frist0 > 255Then
16 Frist0 = 8888
17End If
18End Function
然后在单位格中可以直接引⽤
例如:=Frist0(4) 返回值即为4⾏中第⼀个不为0的单元格列号,
如果函数返回8888,表明这⾏没有数据。
excel非空单元格统计
excel非空单元格统计在Excel中,统计非空单元格的数量可以使用多种方法。
下面我将从不同角度介绍几种常用的方法。
方法一,使用COUNTA函数。
COUNTA函数可用于统计非空单元格的数量。
它会计算指定范围内所有不为空的单元格数量。
1. 选择一个空白单元格作为统计结果的位置。
2. 在该单元格中输入函数表达式,=COUNTA(A1:A10),其中A1:A10是你要统计的范围。
3. 按下回车键,即可得到非空单元格的数量。
方法二,使用COUNTIF函数。
COUNTIF函数可用于统计满足特定条件的单元格数量。
通过设置条件为非空,可以统计非空单元格的数量。
1. 选择一个空白单元格作为统计结果的位置。
2. 在该单元格中输入函数表达式,=COUNTIF(A1:A10,"<>"),其中A1:A10是你要统计的范围。
3. 按下回车键,即可得到非空单元格的数量。
方法三,使用筛选功能。
Excel的筛选功能可以帮助筛选出非空单元格,然后统计筛选结果的数量。
1. 选中要统计的范围。
2. 在Excel的菜单栏中选择“数据”->“筛选”->“筛选”。
3. 在需要筛选的列上点击筛选按钮,选择“空白”以外的选项。
4. 统计筛选结果的数量,可以查看状态栏中显示的计数。
方法四,使用宏。
如果需要频繁统计非空单元格的数量,可以使用宏来实现自动化操作。
1. 按下Alt+F11,打开VBA编辑器。
2. 在新建的模块中编写以下VBA代码:Sub CountNonEmptyCells()。
Dim rng As Range.Dim count As Integer.count = 0。
Set rng = Range("A1:A10") '将范围修改为你要统计的范围。
For Each cell In rng.If cell.Value <> "" Then.count = count + 1。
vba 非空行序号 -回复
vba 非空行序号-回复VBA 非空行序号当我们处理大量数据时,经常需要找到数据表中的非空行。
在Excel VBA 中,我们可以使用一些简单的代码来查找非空行并返回其行号。
本文将为您详细介绍使用VBA 在Excel 中查找非空行序号的步骤。
第一步:打开Visual Basic 编辑器首先,我们需要打开Visual Basic 编辑器。
在Excel 中,您可以通过按下"Alt" 键并同时按下"F11" 键来打开Visual Basic 编辑器。
第二步:插入新的模块在Visual Basic 编辑器中,您将看到一个名为"项目资源管理器" 的窗口。
右键单击"VBAProject(您的工作簿名称)",然后选择"插入",再选择"模块"。
这将在"模块" 窗口中插入一个新的模块。
第三步:编写VBA 程序代码在"模块" 窗口中,输入以下代码:Function FindNonEmptyRows(rng As Range) As StringDim cell As RangeDim result As StringFor Each cell In rngIf Not IsEmpty(cell) Thenresult = result & cell.Row & ", "End IfNext cellFindNonEmptyRows = Left(result, Len(result) - 2)End Function上述代码创建了一个名为"FindNonEmptyRows" 的函数。
该函数接受一个范围作为参数,并返回非空行的行号。
第四步:保存和关闭Visual Basic 编辑器完成代码编写后,保存您的工作簿,并关闭Visual Basic 编辑器。
如何统计Excel非空单元格的个数
如何统计Excel非空单元格的个数工作之需,有时候我们需要统计Excel非空单元格的个数,下面是由店铺为大家整理的统计Excel非空单元格的个数方法,喜欢的可以收藏一下!如何统计Excel非空单元格的.个数1、首先点击打开excel表格。
2、打开软件后,进入到表格窗口。
3、在需要统计的单元格,输入公式=counta(),并把光标放置于括号内部。
4、然后利用鼠标去选取需要统计的范围。
5、当然如果数据较多,可以直接选择需要统计的列。
6、上面两种方法选择一种输入后,单击回车键,即可统计非空单元格个数。
7、安全退出。
拓展阅读:excel怎么做表格1、新建一个excel文件。
2、在草纸上画好草稿,将需要数据的表格样式及列数和行数确定。
比如我需要建立一个五行六列的表格,最上面是标题行。
3、在新建excel中,用鼠标选中需要的表格行数列数,然后点右键,“设置单元格格式”——“边框”,在“预置”中根据需要选择“外边框”、“内部”边框。
4、根据需要加边框。
如果是标题处,可以取消外边框,合并横向或者纵向的表格。
方法也是先选中需要设置的表格(第一行),然后右键点击“设置单元格格式”——“对齐”,然后选中“合并单元格”。
5、根据标题长度、宽度调整一下标题行。
如我的标题是“XXXXXX公司表”题目比较长,将标题行拉宽,设置“自动换行”方法如上图,然后根据需要左右缩进,调整居中,然后设置字体大小等。
看调整前的图表:根据字体调整表,如图:6、其他空格内容填好后,同样根据内容调整一下就可以。
7、如果需要打印,就要设置页面了。
我们这个表一看就是横向的,所以选择“文件”--“页面设置”,选择“横向”,然后打印预览一下。
如果要求居中打印但是表格处于页面左上角,就调整一下页边距。
调整好位置后打印即可。
8、如果需要将此表插入到word文档以便其他使用,也很简单。
先将刚做好的Excel表格保存为一个文件名《设备表》到桌面上。
将此页的页面设置成横向,否则表格会显示不全的。
excel获取行内最后一列非空数据的函数 -回复
excel获取行内最后一列非空数据的函数-回复所谓"excel获取行内最后一列非空数据的函数",指的是在Excel表格中,通过一个函数来获取某一行中最后一列非空数据的数值。
下面将逐步介绍如何实现这个功能。
第一步:理解需求我们需要获取某一行中最后一列非空数据的数值。
这意味着我们需要扫描该行的每个单元格,从右往左扫描,直到找到非空单元格为止。
第二步:使用IF函数和COUNTA函数常用的方法是结合IF函数和COUNTA函数来实现。
COUNTA函数可以统计指定范围内非空单元格的个数,而IF函数可以根据条件返回不同的值。
在Excel表格中,假设要获取的行为2,最后一列为列D。
我们可以在空白单元格E2中输入以下函数来实现:=IF(COUNTA(D2:A2)=0,"",OFFSET(D2,0,COUNTA(D2:A2)-1))此函数的解释如下:- COUNTA(D2:A2)统计D2到A2范围内非空单元格的个数。
- 如果COUNTA(D2:A2)等于0,说明这一行没有非空单元格,那么函数返回空值。
- 如果COUNTA(D2:A2)大于0,则使用OFFSET函数从D2单元格开始,往左偏移COUNTA(D2:A2)-1个单元格,即移动到最后一个非空单元格位置,然后取得其数值。
第三步:应用并拓展函数将这个公式应用到整个表格中的其他行,可以得到每一行最后一列非空数据的数值。
如果要获取不同行的最后一列非空数据的数值,只需要将对应行号替换到函数中的行号上即可。
例如,要获取第3行的最后一列非空数据的数值,可以用以下公式:=IF(COUNTA(D3:A3)=0,"",OFFSET(D3,0,COUNTA(D3:A3)-1))同样地,可以将该公式应用到其他的行号上。
第四步:应对特殊情况以上函数可以有效获取一行中最后一列非空数据的数值,但是在实际使用中,有可能会遇到一些特殊情况需要进行处理。
vba 单元格区域非空计数
vba 单元格区域非空计数
在VBA中,可以使用CountA函数来计算一个单元格区域中的非空单元格数。
以下是一个示例代码:
```vba
Sub CountNonEmptyCells()
Dim rng As Range
Dim count As Integer
' 设置要计算非空单元格数量的区域
Set rng = Range("A1:C5")
' 使用CountA函数计算非空单元格数量
count = Application.WorksheetFunction.CountA(rng)
' 在Immediate窗口中显示结果
Debug.Print "非空单元格数量: " & count
End Sub
```
上述示例代码中,我们通过设置rng变量来定义要计算的单元格区域。
然后,使用CountA函数来计算该区域中的非空单元格数量,并将结果存储在count变量中。
最后,使用Debug.Print在Immediate窗口中显示结果。
你可以根据需要修改示例代码中的单元格区域和输出结果的方式。
excel用函数统计非空单元格的方法
excel用函数统计非空单元格的方法
用函数统计非空单元格在Excel中是比较常用的功能之一,如果有不懂的朋友却需要用到这个功能的朋友不妨学习一番吧!接下来是店铺为大家带来的excel用函数统计非空单元格的方法,供大家参考。
excel用函数统计非空单元格的方法:
非空单元格步骤1:下面是一名员工的出勤表,我们要统计他截至15号为止一共出勤几天。
非空单元格步骤2:通过上述的函数介绍我们看出要统计非空单元格只能用COUNTA及COUNTIF函数。
首先介绍COUNT函数的方法。
在C2单元格输入"=COUNTA(B2:B16)",然后C2单元格就得出这该名员工截至15号一共出勤10天。
非空单元格步骤3:COUNTIF是用于统计符合选定条件的单元格的数量,所以要统计非空单元格,我们首先需要知道非空在EXCEL中如何表示。
“><”“<>”这两个都是用于表示非空单元格的。
在C2单元格中输入“=COUNTIF(B2:B16,"<>")”,C3单元格输入“=COUNTIF(B2:B16,"><")”,两个公式得出的结果是一样的。
ExcelVBA编程获取单元格行列信息
ExcelVBA编程获取单元格行列信息Excel VBA编程获取单元格行列信息在VBA中,提供了Select属性来对单元格区域进行选择,并可以对其各种设置,例如指定字体颜色、单元格的边框等。
除些之外,还提供了其他的一些属性,用来读取这些选择后的单元格的信息,这在编程中非常实用。
1.获取单元格或单元格区域的地址在VBA代码中,对于某些需要使用所选择的单元格或单元格区域的地址时(在不能输入地址的情况下),可使用Range对象中的Address属性来获取单元格区域的地址。
格式:表达式.Address(RowAbsolute,ColumnAbsolute,ReferenceStyle,External,RelativeTo)其中表达式代表一个Range对象的变量,属性中括号内的参数用于返回当前地址的类型,其详细说明如表14.5所示。
表14.5 Address参数说明如果引用包含多个单元格,RowAbsolute和ColumnAbsolute 将应用于所有的行和列。
对象ReferenceStyle的数据类型XlReferenceStyle是一个枚举类型的数据,包括了两个值,说明如表14.6所示。
表14.6 XlReferenceStyle值的描述例如,在工作表Sheet1中,显示引用的单元格的几种不同的样式,过程代码如下:Sub vRange()Dim mc As RangeSet mc = Range("A1:E5")MsgBox mc.Address() '返回$A$1:$E$5' 参数RowAbsoluteMsgBox mc.Address(RowAbsolute:=False) '返回$A1:$E5'参数ColumnAbsoluteMsgBox mc.Address(ColumnAbsolute:=False) '返回A$1:E$5'属性中前两个参数。
用VBA得到EXCEL表格中的行数和列数
用VBA得到EXCEL表格中的行数和列数每种方法中上面的是Excel的行数,下面的是Excel的列数。
方法1:edRange.Rows.CountedRange.Columns.Count缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列)数据清除后(非整行或整列删除),用这个命令仍返回未清除前的值。
就是说现在虽然是空的,但是你曾经用过也算你的。
方法2:ActiveSheet.Range("A65535").End(xlUp).RowActiveSheet.Range("IV1").End(xlToLeft).Column可以简写为:ActiveSheet.[A65536].End(xlUp).RowActiveSheet.[IV1].End(xlT oLeft).Column缺点:只能计算出一列(行)的最后一个单元格所在的行(列)数。
本例是只返回A列最后一个单元格所占的行数。
注意:这种方法返回工作表中最后一个包含非空内容的单元格所在的行号,而不管这一单元格与Me.Cells(1,1)之间是否有包含空白内容的单元格。
而且这一方法将跳过或者说忽略被隐藏的单元格,比如,数据表有连续的50行,如果第48到50行隐藏了,则只返回47。
此外,65536是2003版工作表最大可用行数(2003版 65536行、256列,2007版1048576行、16384列),2007版就应该写成ActiveSheet.[A1048576].End(xlUp).Row。
除了上面两种写法,还可以写成ActiveSheet.Cells(1048576, 1).End(xlUp).Row。
方法3:ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).RowActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column缺点:在工作表进行对删除或清除操作时也会变得比实际情况大。
多条件计算非空单元格数量
多条件计算非空单元格数量
在Excel 中,要计算非空单元格数量,可以使用以下方法:
1. 假设你的数据位于A1 单元格,你可以使用COUNTA 函数来计算非空单元格数量。
将以下公式填入一个空白单元格,例如B1:
```
=COUNTA(A1:A1)
```
这里的范围是A1 到A1,也就是说,这个公式只会计算A1 单元格的非空值。
将此公式复制到其他单元格,即可计算其他区域的非空单元格数量。
2. 如果你想要计算一个区域中非空单元格的数量,可以使用以下公式:
```
=COUNTA(区域范围)
```
例如,如果你想要计算A1 到A10 区域中非空单元格的数量,可以将公式填入一个空白单元格,如B1:
```
=COUNTA(A1:A10)
```
3. 你还可以使用条件格式来识别非空单元格。
选中一个空白单元格,如B1,然后:
①打开“开始”选项卡的“样式”组;
②点击“条件格式”;
③选择“新规则”;
④在“格式值等于以下公式时”输入框中,输入以下公式:
```
=COUNTIF(A1:A10, ">0")
```
⑤点击“格式”按钮,为非空单元格设置一个显眼的格式,如红色;
⑥确认你的设置,然后关闭“条件格式”对话框。
这样,A1 到A10 区域中的非空单元格将显示为红色。
如果你想更改范围,只需修改公式中的区域引用即可。
又来了!找到最后一个非空值
又来了!找到最后一个非空值excelperfect这里纯粹是一次练习,或者你把它当作一次游戏也可以,当然,如果你在实际应用过程中碰到过类似的问题,那再好不过了,正好有了解决方案。
如下图1所示,在单元格区域A3:E12中查找单元格K2中的值,返回该值所在行最后一个非空值。
图1你能够写出至少10个不同的公式,解决上述问题吗?很显然,要返回某个单元格中的值,就要知道该单元格的地址,也就是行号列标,这是我们的基本思路。
好了,公式开始上场了。
行号很容易找到,使用MATCH函数:MATCH($K$2,$A$3:$A$12,0)列呢?知道行号后,可以使用INDEX函数获取整行,然后再使用COUNTA统计该行文本值个数,就是要获取的值所在的列了:COUNTA(INDEX($A$3:$E$12,MATCH($K$2,$A$3:$A$12,0),))将上述行列位置代入INDEX函数,得到相对应的值:=INDEX($A$3:$E$12,MATCH($K$2,$A$3:$A$12,0),COUNTA(I NDEX($A$3:$E$12,MATCH($K$2,$A$3:$A$12,0),)))既然列所在的位置知道了,我们当然也可以使用VLOOKUP函数:=VLOOKUP(K2,A3:E12,COUNTA(INDEX($A$3:$E$12,MATCH( $K$2,$A$3:$A$12,0),)))进一步,也可以使用ADDRESS函数得到单元格地址,然后使用INDIRECT函数取出该单元格中的值:=INDIRECT(ADDRESS(ROW(A2)+MATCH(K2,A3:A12,0),COU NTA(INDEX(A3:E12,MATCH(K2,A3:A12,0),))))换一下思路,可以使用其它的方式获取列所在的位置。
由上文我们知道:INDEX(A3:E12,MATCH(K2,A3:A12,0),)获取了所查找的值所在的行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
获取excel多列区域最后非空单元格行数(VBA5练习
2)[Excel精英培训网]
再出1道有些小弯弯的题目, 有两小问,大家做后可以跟贴上传答案. (有基础的学员建议不要用循环来做)
要求:
第1问: 计算A:L列最下方一个含非空内容的行数.(用学过的知识做出来)
第2问: 如何计算A:F列最下方一个非空单元格行数。
注:
1、第二题为选做题,留给有VBA基础的学员,如果不用循环需要用到两个个未提及到的单元格处理技巧。
2、每题有两种最简单的方法,看大家能否做出
此主题相关图片如下:。