打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
选择行,列,表,工作薄对象(VBA)

文章目录


接上篇 选择单元格(VBA)

先纠正 开篇(VBA) 中示范的一段实例代码(看不懂的朋友也不必在意, 小编这些都会慢慢说到, 不愁看不懂)

经高人指点, 可以使用最优算法(由下向上删除), 小编示例中的算法(由上向下的算法)不可取, 即使如小编回复中在 IF 判断中追加一条 i=i-1, 也是不行, 因小编测试了一下, 虽说能成功清除空行, 但是会陷入死循环中, 还需要同时判断n的值, 从空间和时间上都增加了复杂度, 比较的麻烦, 还是由下向上来的轻松, 同时在此向高人们的指点表示感谢!

n = Range('a65535').End(xlUp).Row

For i = n To 1 step -1 '此处进行了修正, 把正序改为了倒序

If Cells(i, 1) = '' Then

Range('a' & i).EntireRow.Delete

End If

Next i

脚本执行前

由下向上删除法最高效

还有朋友提出, 逻辑上的问题, 小编觉着这位朋友是思维细腻朋友, 他说这段代码只是判定A列的中单元是空就删除整行不合乎逻辑, 这一点小编是同意的, 同时也提醒大家, 执行脚本前应该检查自己的数据表, A列单元格为空的是不是整行都是空的或是确定想删除的, 如果不检查就执行这段代码就危险了. 脚本的意义就在于先从工作中找到重复的规律, 再去编写相应的处理脚本.


再补充一些单元格或单元格区域相关的内容

单元格和单元区域的选择中应用了Range, Cells, Offset, Resize, [ ]此符号称为快捷记号, ActiveCell等方式进行了单元格或单元格区域的选择.

除以上方式还有几个, 小编在此作一下补充:

(1)活动单元格ActiveCell 也可以扩展为区域, 如果大家看了前一篇内容, 这个也是很好理解的.

ActiveCell 表示的是当前活动单元格(即被选中状态的单元格)

从当前活动(被选中)单元格扩展为一个单元格区域

验证小编说的Resize与 Offset的区别

(2) 可以对选中的区域进行移动偏移(Offset)

区域偏移操作前

区域偏移后


(3)多个单元格可以合并为一个区域, 那么多个区域也可以合并一个大的区域(这一点不知道小编此处讲是否合适, 再有涉及, 小编再多说一遍, 单元格---->单元格区域---->多区域合并, 这个递进方式小编感觉合适, 就在此处补充上了)

这里用到了Union(Range('A1:C3'), Range('B2:D6')).Select

多区域合并

大家可不要被小编的实例限制了, Union可以合并的不只两个区域, 可以有多个的, 如:

Union(Range('A1:B3'), Range('B2:C5'), Range('D6:E8'),........).Select


最后开始正题(小编跑题了, 因为选择行, 列, 表, 工作薄没多少实例, 所以顺带跑个题, 想大家还是可以接受的)


选择行操作


(1) 使用Range选择一行

Range方法选择一行

(2) 使用Range选择多行

Range方法选择多行

(3) 使用EntireRow选择一行

EntireRow选择一行

(4) 使用EntireRow选择多行

EntireRow选择多行

(5) 使用Rows选择一行

Rows选择一行

(6) 使用Rows选择多行

Rows选择多行


选择列操作


(1) 使用Range选择一列

Range选择一列

(2) 使用Range选择多列

Range选择多列

(3) 使用EntireColumn选择一列

EntireColumn选择一列

(4) 使用EntireColumn选择多列

EntireColumn选择多列

(5) 使用Columns选择一列

Columns选择一列

(6) 使用Columns选择多列

Columns选择多列


选择表操作


大家现在对选择单元格和单元格区域, 选择行, 列应该有所理解了, 如果手动去操作一下子, 那就通了.

单元格区域Range就是包含好多单元格的一个大集合, 我们可以通过Range('单元格名'), 如Range('A3')来选择一个单元格, 与此类似, 行列也有集合, 那就上面说过的, Rows, Columns.

那么表和工作薄也是同样的道理, 表的集合是 WorkSheets, 工作薄的集合是WorkBooks

(1) 于是乎, 你举一反三, 触类旁通的明白了, 选择工表不就是 WorkSheets('工作表名')吗, 定位(激活)一个工表使用 Activate 方法, WorkSheets('工作表名').Activate 就是激活一个表(或选择一个工作).

选择(激活)需要的工作表

脚本执行后, 测试表01 被激活


(2) 还可以通过工表的索引号来选择一个工作表, 如上图中 三个表按索引顺序是 1, 2, 3, 小编现在要选择 测试表02, 那么它的索引序号就是 WorkSheets(2).Activate

通过工作表的索引序号选择指定的工作表


(3) WorkSheets还有个Select 方法也可以选择一个工作表, 如WorkSheets('工作表名').Select 或 WorkSheets(2).Select

使用Select方法来定位指定工作表名的表

使用Select方法来定位指定工作表序号的表


(4) WorkSheets包含工作薄中所有的工作表, 它有个兄弟 Sheets 不仅包含工作表集合WorkSheets,还包含图表集合Charts、宏表集合Excel4MacroSheets与MS Excel 5.0对话框集合DialogSheets等。当然大家只需要知道Sheets也可以操作工作表就可以了, 至于Sheets包含其它对象的集合后面再说, 让小编慢慢来梳理给大家看.

Sheets通过工作表名激活工作表

Sheets通过工作表序号激活工作表

Sheets通过工作表名选择工作表

Sheets通过工作表序号激活工作表


(5)单元格中我们学到过一个 ActiveCell 表示当前活动单元格或被选中状态的单元格, 那么表的操作中也有一个对应的ActiveSheet. 意思也都差不几个梨, 表示当前表或被激活选中的表.

ActiveSheet表示的当前选中的表或活动的表


选择工作薄的操作


小编再唠叨一句, 举一反三, 触类旁通. 如前所提到, WorkBooks就是工作薄的集合, 我们创建的一个Excel文档就是一个工作薄, 这一点小编认为还是有辣么一小部分的朋友不知道吧或者工作表和工作薄分不那么清楚, 小编梳理知识的顺序是由小及大, 单元格--->行和列--->工作表---->工作薄, 当然后面还有个大的是Application对象, 这个吗, 慢慢来吧, 小编说好要坚持到大家坚持不下去的时候才停止此系列, 如果还有朋友继续看, 那小编就永不停歇, 直到终点!!!

(1) Workbooks

通过工作薄名称操作工作薄

通过工作薄在当前目录中的指定规则排序的序号操作


(2) ActiveWorkbook

这个, 有了 ActiveCell 表示活动单元格, ActiveSheet 表示活动工作表, 那么 ActiveWorkbook 就表示当前活动工作薄.

当前活动的工作薄

注意:如果你同时打开多个工作薄, 那么这个AcitveWorkbook 表示是就是当前操作的工作薄. 也叫当前活动的工作薄.

希望大家多结合前两篇学过的基础进行理解


(3) ThisWorkbook 表示执行代码所属的工作薄, 注意跟ActiveWorkbook的区别.

ThisWorkBook表示脚本所属的工作表本身


结束语:

本篇到此为止了, 小编抽出来的时间就用这上面了, 文章内容小编也没来得急细审, 有不明白或讲不通的地方, 欢迎批评指正, 更希望有高手指点一二, 非常感谢各方朋友的支持. 下篇讲些对象, 属性, 方法 等这些基础的概念.

感谢大家关注支持

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用VB操作excel方法汇总
EXCEL_VBA常用语句
在VBA代码中引用工作表单元格区域的方式小结
VBA是你工作之中的驿站
VBA|Excel对象、事件、对象的选择和引用
Excel VBA语句集
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服