如何通过VBA修复excel中的滑动行?

时间:2016-12-12 11:16:50

标签: vba excel-vba excel

我有一个excel文件,其中包含很多行。每隔一行都会滑落。如何通过VBA修复这些滑动的行?

我附上了一个小模板: enter image description here

如果右侧有空白单元格,我该怎么办?

3 个答案:

答案 0 :(得分:0)

假设A到F列中的数据

Accept-Encoding:gzip, deflate

答案 1 :(得分:0)

试试这个:

  Sub slipp_fix()

    Set ww = Application.Selection
    Set ww = Application.InputBox("Select first col of table", xTitleId, ww.Address, Type:=8)

    For Each C In ww
    If C.Value = "" Then
    C.Select
    Selection.Delete Shift:=xlToLeft
    End If

    Next
end sub

答案 2 :(得分:0)

这是我的评论的VBA版本,向左移动:

Range("A:A").SpecialCells(xlCellTypeBlanks).Delete xlShiftToLeft

没有向右删除的转变,但根据布局,几乎没有办法。更通用的方法可以是将空白单元格选择向左移动并使用插入移位到右侧,但我不确定如何在没有VBA的情况下执行此操作。 例如,选择F列中的空白单元格并在A列中的相同行上插入相应的单元格:

Intersect(Range("A:A"), Range("F:F").SpecialCells(xlCellTypeBlanks).EntireRow).Insert xlShiftToRight

对于更多随机空白区域,更通用的方法是分别移动每一行:

With ActiveCell.Worksheet.UsedRange  ' or change to a different range
    .SpecialCells(xlCellTypeBlanks).Delete xlShiftToLeft ' to shift all non-blank cells to the left
    For Each area In .SpecialCells(xlCellTypeBlanks).Areas
        area.Offset(, .Column - area.Column).Insert Shift:=xlToRight
    Next
End With