
《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是:VBA之Excel应用第四章第九节:以当前活动单元格(ActiveCell)为起点的选择
【分享成果,随喜正能量】330伸手要来的安全感 ,毫无意义, 被提醒后的细节,分文不值 ,我的靠山是我自己,我的坏情绪都是自己消化的,能替我撑腰的那个人,是我心中打不败的自己。
第四章 单元格(Range)对象大家好,我们这章开始学习单元格对象。单元格(Range)对象是Excel VBA中最重要的对象之一。本章概述了Range对象的属性和方法,包括如何声明一个单元格对象,如何选择单元格对象,以及对行、列的操作,还讲解了如何对单元格进行复制、粘贴、清除、计数,以及对当前区域CurrentRegion的讲解,还涉及到单元格的联合与交叉等。通过这章的学习,大家会更清楚地看到VBA的结构,以及在实际工作中VBA的综合利用。

大家好,我们今日开始讲解从当前活动单元格(ActiveCell)到所在行、列某个单元格的选择,所谓当前活动单元格就是ActiveCell,如何选择从这个单元格开始到这个单元格所在的行或者列的某单元格进行选择呢?其实,这种操作在实际应用中也是非常多的。比如:在某个工作表中进行循环操作,循环的范围是从开始到某列最后一个非空的单元格,或者从开始到这列最后一个应用的单元格的位置等等。我们这讲就来讲解相关的操作。
展开全文 1 Range.End 属性单元格的这个属性返回一个Range对象,它表示包含源范围的区域末尾的单元格。相当于按 End+向上键、End+向下键、End+向左键或 End+向右键。此为只读 Range 对象。
语法:expression.End (Direction)
其中的expression 为一个表示 Range 对象的变量。
参数:Direction可以为下面的枚举值之一:
① xlDown 表示向下Down。
② xlToLeft表示向左To left.
③ xlToRight表示向右To right.
④ xlUp表示向上Up.
2 Range.End 属性的应用示例1)选定包含单元格 B4 的区域中 B 列顶端的单元格,我们可以用下面的代码:
Range("B4").End(xlUp).Select
2)选定包含单元格 B4 的区域中第 4 行尾端的单元格,我们可以用下面的代码:
Range("B4").End(xlToRight).Select
3)选定区域为从单元格 B4 延伸至第四行最后一个包含数据的单元格,我们可以用下面的代码:
Worksheets("Sheet9").Activate
Range("B4", Range("B4").End(xlToRight)).Select
3 Range.End 属性的实际应用我们来看看单元格End属性的应用实例,这个例子说明了Excel VBA中Range对象的结束属性。我们将使用此属性选择从活动单元格到列中最后一个条目的范围。
1)应用实例1:在下面的工作表中,我们将选择从A1到这列的最后的一个非空的单元格,并计算整个选择范围的值的和。
我们看下面的代码:
Sub mynzP() 'Range.END的应用实例1
Dim myRange, mycell As Range
Sheets("SHEET9").Select
Set myRange = Range(Range("A1"), Range("A1").End(xlDown))
For Each mycell In myRange
k = k + mycell.Value
Next
MsgBox "A列从A1向下到非空单元格的和为" & k
End Sub
代码截图:

代码讲解:
Set myRange = Range(Range("A1"), Range("A1").End(xlDown))
以上代码将取得A1到A1向下第一个非空单元格之间的单元格。
我们看代码的运行效果:

2)应用实例2:在下面的工作表中,我们将选择从A1到这列所有应用的最后的一个非空的单元格,并计算整个选择范围的值的和。
我们看下面的代码:
Sub mynzQ() 'Range.END的应用实例2
Dim myRange, mycell As Range
Sheets("SHEET9").Select
Set myRange = Range(Range("A1"), Range("A" & Columns("a").Cells.Count).End(xlUp))
For Each mycell In myRange
k = k + mycell.Value
Next
MsgBox "A列单元格的和为" & k
End Sub
代码截图:

代码的解读:
Set myRange = Range(Range("A1"), Range("A" & Columns("a").Cells.Count).End(xlUp))
以上代码将获取A列中所有应用的单元格范围,应用的代码中Range("A" & Columns("a").Cells.Count).End(xlUp) ,是先取得A列最后的单元格,然后利用End(xlUp)到第一个不为空的单元格。
代码的运行效果:

今日内容回向:
1) 单元格的End属性意义是什么,有什么作用?
2) 如何利用单元格的End属性获取某列向下到非空单元格?
3) 如何利用单元格的End属性获取某列所有应用的单元格?
本讲内容参考程序文件:工作簿04.xlsm

我20多年的VBA成果全在下面的资料中:




)
)
)
)

)
)
)
)
)
(柯林斯词典和牛津词典那个更适合大学生))

)
)