我有一个excel文件,其中包含了很多行。每隔一秒就会滑过一排。如何通过VBA修复这些滑行?
我附上了一个小模板:

如果空白细胞在右边,我能做什么?
发布于 2016-12-12 15:13:12
下面是我的评论的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发布于 2016-12-12 11:30:33
假设A至F列中的数据
Sub Main()
Dim rng As Range, cl As Range
Set rng = Range("B1:B" & Range("B1").End(xlDown).Row)
For Each cl In rng
If cl.Offset(0, -1) = vbNullString Then
Range(Cells(cl.Row, cl.Column), Cells(cl.Row, 6)).Cut Destination:=cl.Offset(0, -1)
End If
Next cl
End Sub发布于 2016-12-12 11:34:27
试试这个:
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 subhttps://stackoverflow.com/questions/41099643
复制相似问题