You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求修正删除行内空白单元格的VBA宏代码

修正删除每行空白单元格并左移的VBA宏

原代码存在三个核心问题导致无操作:

  • 错误固定取第1行的最后一列,而非当前循环行的有效列
  • 目标范围只选中了第1行的单个单元格,未覆盖当前行的所有数据单元格
  • 遍历所有行(含大量空行)效率极低,且正向遍历删除单元格会漏检

修正后的代码:

Sub RemoveBlankCells()
    Dim row As Long
    Dim lastCol As Long
    Dim col As Long
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("ABC")
    
    ' 只遍历有数据的行(从第1行到最后一行有数据的行)
    For row = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        ' 获取当前行的最后一列
        lastCol = ws.Cells(row, ws.Columns.Count).End(xlToLeft).Column
        
        ' 反向遍历列(从最后一列到第1列),避免删除单元格后漏检
        For col = lastCol To 1 Step -1
            If ws.Cells(row, col).Value = "" Then
                ws.Cells(row, col).Delete Shift:=xlToLeft
            End If
        Next col
    Next row
End Sub

关键修改说明:

  • 改用行号循环,仅遍历有数据的行,大幅提升效率
  • 针对当前行row获取最后一列lastCol,确保处理范围正确
  • 反向遍历列(从后往前),避免删除空白单元格后,后续单元格左移导致的漏检问题

内容的提问来源于stack exchange,提问作者cdfj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:37:03