上一篇我写了将一列数据首尾倒置排列的 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学习世界
转发、在看也是爱!
领取专属 10元无门槛券
私享最新 技术干货