我有一列数据,其整个长度上随机包含空格,组合在一起的空格数量也是随机的。例如
1 1
Space 1.25
Space 1.5
Space 1.75
2 2
3 3
4 4
5 5
6 6
Space 6.333333333
Space 6.666666667
7 Changes to --> 7
8 8
9 9
Space 9.5
10 10
11 11
12 12
Space 12.5
13 13
Space 13.33333333
Space 13.66666667
Space 14
Space 14.33333333
Space 14.66666667
15 15
在行数较少的正常情况下,方法是从组的顶部开始,手动突出显示每个空间范围以及上下两个值,然后应用线性趋势系列来填充每个空单元格。
问题是我有多达 20000 行需要处理,因此无法手动处理。
是否有可能以某种方式将系列自动填充仅应用于整个列的空间?
答案1
使用如下数据:
首先单击要处理的列中的任意单元格并运行此宏:
Sub FillInTheBlanks()
Dim iCol As Long, Last As Long, i As Long
Dim iBlank As Long, BlankMode As Boolean
Dim Delta, j As Long, i1 As Long
iCol = ActiveCell.Column
Last = Cells(Rows.Count, iCol).End(xlUp).Row
iBlank = 0
BlankMode = False
For i = 1 To Last
If BlankMode Then
If Cells(i, iCol) = "" Then
iBlank = iBlank + 1
Else
Delta = (Cells(i, iCol).Value - v1) / (iBlank + 1)
For j = i1 To i - 1
Cells(j, iCol).Value = Cells(j - 1, iCol).Value + Delta
Next j
BlankMode = False
End If
Else
If Cells(i, iCol) = "" Then
v1 = Cells(i - 1, iCol).Value
iBlank = 1
i1 = i
BlankMode = True
End If
End If
Next i
End Sub
生产: