vba中如何选中某个区域后再去掉选中的首行

 我来答
玄仁讯0r
2014-12-19 · TA获得超过1.8万个赞
知道大有可为答主
回答量:2343
采纳率:57%
帮助的人:1006万
展开全部

由于不知道选择某区域去掉所选区域的首行是什么意思,所以两个代码,第一个代码在选择的区域基础上重新少选1行,第二个代码删除所选区域的首行。

第一个代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  '单元格鼠标点击事件
  Application.EnableEvents = False '关闭事件响应
    Application.ScreenUpdating = False '关闭屏幕刷新
      a = Target.Address '被选择的单元格范围
      b = InStr(a, ":") '查找冒号的位置
      c = Left(a, b - 1) '开始单元格地址
      d = Mid(a, b + 1, 20) '结束单元格地址
      a = "" '初始化开始行号
      For i = 1 To b - 1 '字符数循环
        e = Mid(c, i, 1) '取1个字符
        If Asc(e) > 47 And Asc(e) < 58 Then '为数字则执行
          a = a & e '行号叠加
        End If
      Next i
      e = Len(a) '行号位数
      c = Left(c, b - 1 - e) '取开始列地址
      c = c & a + 1 '新的开始单元格地址
      a = c & ":" & d '新的单元格范围
      Range(a).Select '重新选择范围
    Application.ScreenUpdating = True '打开屏幕刷新
  Application.EnableEvents = True '开启事件响应
End Sub

第二个代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  '单元格鼠标点击事件
  Application.EnableEvents = False '关闭事件响应
    Application.ScreenUpdating = False '关闭屏幕刷新
      a = Target.Address '被选择的单元格范围
      b = InStr(a, ":") '查找冒号的位置
      c = Left(a, b - 1) '开始单元格地址
      d = Mid(a, b + 1, 20) '结束单元格地址
      a = "" '初始化开始行号
      For i = 1 To b - 1 '字符数循环
        e = Mid(c, i, 1) '取1个字符
        If Asc(e) > 47 And Asc(e) < 58 Then '为数字则执行
          a = a & e '行号叠加
        End If
      Next i
      Rows(a & ":" & a).Delete Shift:=xlUp '删除行
    Application.ScreenUpdating = True '打开屏幕刷新
  Application.EnableEvents = True '开启事件响应
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式