又一个问题。
我正在寻找一个函数或宏将所有数据从选定的一系列行移动到选定区域的最上面一行。
例如,Romboutsia 有 12 行(84 到 95),所有行将(/应该)有 1 个数据点。我希望将所选行中的所有数据移至该组的最上面一行。因此,来自 C87 的数据需要移至 C84、D90 移至 D84、E93 移至 E84、F85 移至 F84、J86 移至 J84 等等...
对于 A 列中选定的相同名称分组,行中永远不会有两组数据。
然后我可以对下一组选定的行重复该过程,依此类推。
让我的生活变得更轻松,而不是手动处理 10000 条或几行数据。
Option Explicit
Sub Demo()
Dim i As Long, j As Long
Dim arrData, rngData As Range
Dim arrRes, iR As Long, sKey As String
Set rngData = ActiveSheet.Range("A1").CurrentRegion
arrData = rngData.Value
For i = LBound(arrData) + 1 To UBound(arrData)
If Not sKey = arrData(i, 1) Then
sKey = arrData(i, 1)
iR = i
End If
For j = LBound(arrData, 2) + 1 To UBound(arrData, 2)
If Len(arrData(i, j)) > 0 Then
If i <> iR Then
arrData(iR, j) = arrData(i, j)
arrData(i, j) = ""
End If
Exit For
End If
Next j
Next i
rngData.Value = arrData
End Sub