首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel–将选中列首尾倒置排序

上一篇我写了将一列数据首尾倒置排列的 3 种方法,今天应部分读者要求,再来教一个 VBA 实现的方式。

一说到 VBA,很多人会望而生畏,都以为很难,就直接放弃了。但是今天的这个需求,用 VBA 恰巧是特别简单的实现方法,因为主要是利用了 VBA 自带的 selection 对象。

需求:

鼠标选中的一列单元格区域时,点击按钮就能将选中区域首尾倒置排序

解决方案:

1. 按 Alt+F11 打开 VBE,输入以下代码:

Sub st()

  Dim i, n As Integer, arr'声明变量

  arr = Selection'arr为选中的单元格

  n = Selection.Count'n为选中的行数

  For i = 1 To n'从1到最大行循环

      Selection(i) = arr(n - i + 1, 1)'倒置

  Next

End Sub

2. 保存 VBA,回到 Excel 界面,选择菜单栏的“开发工具”-->“插入”-->“按钮”

3. 指定刚才创建的 VBA 为对应的宏,并将按钮的默认文本改为“倒置”

4. 现已完成,以下就是演示效果:

关于 Selection 和 ChangeSelection 对象:

本例的实现必须先选中单元格,再点击按钮才有效,因为如果不选中单元格,运行 VBA 的时候就会找不到  Selection 对象

Selection 对象代表窗口或窗格中的当前所选内容,所选内容代表文档中选定(或突出显示)的区域

如果文档中没有选定任何内容,则代表插入点

每个文档窗格只能有一个 Selection 对象,并且在整个应用程序中只能有一个活动的 Selection 对象

ChangeSelection 对象表示当选中的内容发生了改变;利用这个特性,我们就可以用它来触发鼠标点击事件,比如Excel VBA(16) – VBA 按单击的标题列排序

Excel学习世界

转发、在看也是爱!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200614A087UG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券