用线性序列填充整列的列空格

用线性序列填充整列的列空格

我有一列数据,其整个长度上随机包含空格,组合在一起的空格数量也是随机的。例如

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

生产:

在此处输入图片描述

相关内容