我正在尝试从中获取一个 excel 表:(对不起,我的声誉不够高,无法发布图片,所以我自己托管了它们..)
至
我找到并修改了一些 VBA 代码:
管理这些 excel 表的女孩没有按帐号预先排序,就像我在上面的第一个屏幕截图中所做的那样,所以也在下面的代码中
Sub MergeRows()
Dim iRow As Long, oCell As Object
Sheets(1).Activate
Columns("A:H").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
iRow = 1
Do While Len(Cells(iRow, 1)): DoEvents
If Cells(iRow, 1) = Cells(iRow + 1, 1) Then
For Each oCell In Rows(iRow).Cells
If oCell < Cells(iRow + 1, oCell.Column) Then
oCell = Cells(iRow + 1, oCell.Column)
End If
Next
Rows(iRow + 1).Delete
Else
iRow = iRow + 1
End If
Loop
End Sub
但是,那
If oCell < Cells(iRow + 1, oCell.Column) Then
行似乎导致负数被删除,因为它们不大于它们上方的空白单元格。(对吗?)我找不到 A)不删除负数和 B)不需要一个小时运行的解决方案。
我曾尝试用以下方式交换该行:
If Len(Trim(oCell)) = 0 Then
但是,当您进入 100 多行帐户时,需要很长时间。
有没有其他方法可以排序然后合并行而不会丢失底片或花一个小时运行?
我确信有一个简单的解决方案。但我是 VBA 代码的新手。
谢谢,