如何使用VBA宏将Excel选中单元格区域每侧各缩减1个单元格
实现效果
选中A1:A10区域运行宏后,自动调整选中范围为A2:A9,效果参考:

完整VBA代码
Sub 缩小选中区域() Dim selectedRng As Range Dim newRng As Range ' 校验当前选中对象是否为单元格区域 If TypeName(Selection) <> "Range" Then MsgBox "请先选中单元格区域" Exit Sub End If Set selectedRng = Selection ' 行数不足3行时无法去掉首尾行,直接退出 If selectedRng.Rows.Count < 3 Then MsgBox "选中区域至少需要3行才能执行缩小操作" Exit Sub End If ' 偏移1行去掉首行,重新设置行数去掉尾行 Set newRng = selectedRng.Offset(1, 0).Resize(selectedRng.Rows.Count - 2, selectedRng.Columns.Count) ' 选中调整后的区域 newRng.Select ' 可按需删除下方弹窗提示 MsgBox "调整后选中区域地址:" & newRng.Address End Sub
使用方法
- 打开目标Excel文件,按下
Alt + F11调出VBA编辑器 - 在左侧工程资源管理器中右键点击对应工作簿,依次选择「插入」-「模块」
- 将上述代码粘贴到弹出的模块编辑窗口中
- 回到Excel界面,选中需要调整的单元格区域,按下
Alt + F8调出宏列表,选择「缩小选中区域」点击执行即可
补充说明:代码默认适配多列连续区域,如选中A1:C10运行后会自动调整为A2:C9;如果需要处理不连续选中区域,可额外新增对Selection.Areas集合的遍历逻辑。
内容的提问来源于stack exchange,提问作者XiTe
相关产品推荐
相关产品推荐

