我有一个500-600行的文件(具有很大的增长潜力)。它以xml文件开始,在自动读取后,创建的表格在标题信息和其余部分之间具有不同数量的空白单元格。每行存在相同数量的信息。我需要每行包含连续的数据。删除特定行中的空白单元格,直到非空单元格(VBA/Excel)
想象的黄色方块是细胞的信息。顶级网格是它对我的影响。中间是多么迫切需要它。最后是一个理想,其余的表格格式列消失了(也是我知道如何做的很容易)。
我将不胜感激任何和所有的帮助。
我有一个500-600行的文件(具有很大的增长潜力)。它以xml文件开始,在自动读取后,创建的表格在标题信息和其余部分之间具有不同数量的空白单元格。每行存在相同数量的信息。我需要每行包含连续的数据。删除特定行中的空白单元格,直到非空单元格(VBA/Excel)
想象的黄色方块是细胞的信息。顶级网格是它对我的影响。中间是多么迫切需要它。最后是一个理想,其余的表格格式列消失了(也是我知道如何做的很容易)。
我将不胜感激任何和所有的帮助。
不知道我理解真正的需求,但如果你使用类似的数据:
,并选择在柱小区A你要处理并运行此行:
Sub FixLines()
Dim r As Range, N As Long, i As Long, RR As Long
For Each r In Selection
RR = r.Row
N = Cells(RR, Columns.Count).End(xlToLeft).Column
If N <> 1 Then
For i = N To 1 Step -1
If Cells(RR, i).Value = "" Then
Cells(RR, i).Delete (xlShiftToLeft)
End If
Next i
End If
Next r
End Sub
您将结束:
以下是一种方法(您也可以使用代码将内容移至左侧)。
Option Explicit
Function Delete_Blank_Cells()
Dim lRow As Long
Dim lCol As Long
Dim LastRow As Long
Dim LastCol As Long
LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).column
For lRow = 1 To LastRow
For lCol = 1 To LastCol
If Cells(lRow, lCol) = "" Then
Cells(lRow, lCol).Delete Shift:=xlToLeft
End If
Next
If lRow > 5 Then
MsgBox "Exit code - remove after testing!!"
Exit Function
End If
Next
End Function
所以,你只是想删除所有有空白数据的单元格? – cheezsteak 2014-12-02 20:23:36
Ish。要么删除单元格,直到有数据的单元格取代“C”的位置,或者如果C为空,则到达该行中具有文本的下一个单元格,剪切三个单元格并将其粘贴到最初引用的C单元格中它不再是空白。 – Archaimot 2014-12-02 20:27:49