EXCEL VBA删除空白单元及空白单元左边单元,一定要用VBA(高手请进)

1.删除空白标记的单元和左边的数据(见黄色)
2.Sheet4.Range("B10:AI254)可以指定表名和任意思范围(要用这样的代码指定范围B10:AI254)
3.用VBA
http://pan.baidu.com/s/1pJNn0hH

4.用按键3来执行
最新回答
带翅膀的吸血鬼

2025-04-29 00:12:25

把按键3制定宏为删除空白格
删除空白格的代码如下:
Sub 删除空白格()
ScreenUpdating = False
Dim a As Range
Dim b4delete As Range
Set b4delete = Nothing
Set a = sheet4.Range("B10:AI254")
For i = 1 To a.Rows.Count
'从第二列开始循环查找要删除的单元格
For j = 2 To a.Columns.Count
If Trim(a.Cells(i, j).Value) = "" Then
If b4delete Is Nothing Then
Set b4delete = a.Cells(i, j)
Set b4delete = Union(b4delete, a.Cells(i, j - 1))
Else
Set b4delete = Union(b4delete, a.Cells(i, j), a.Cells(i, j - 1))
End If
End If
Next
Next
ScreenUpdating = True
If Not b4delete Is Nothing Then
b4delete.Delete shift:=xlUp
End If
End Sub
追问
b4delete.Delete shift:=xlUp
最后一句提示
追答
b4delete是一个range包含要删除的单元格。
最后一句是删除单元格(题目中要求的空白格和左边的格)
追问
可是我运行不了,只见哪句代码提示示
灰尘往事

2025-04-29 01:18:44

要删除什么?请举例子说明,语言文字有二意性,不好理解!
皮比墙厚

2025-04-29 00:37:29

Sub d()
For c = 3 To 9 Step 2 '3,5,7,9列
For r = 5 To 12 '5-12行
If Cells(r, c) = "" Then
Cells(r, c - 1) = ""
End If
Next r
Next c
End Sub
追问

你好?你的非常可以,但还差一点就是同时也要删除单元

让结果变成这样

追答
不明白。
是删除单元,
让右边的单元左移,或下面的单元上移吗?
追问
Sub d()
这个代码完成后,让数据往上移
集在一起
像图片所示(下面的单元上移)
追答
Sub d()
For c = 3 To 9 Step 2 '3,5,7,9列
For r = 5 To 12 '5-12行
If Cells(r, c) = "" Then
Range(Cells(r, c - 1), Cells(r, c)).Select
Selection.Delete Shift:=xlUp
End If
Next r
Next c
End Sub
追问
执行了,部分被漏删除,见b列
追答
可能单元格不为 空值,如在空格等。