0

如何将值放在没有间隙的列中的列中?

提前致谢。

这是输入和所需输出的示例。

Index Input Output
  1    10    10
  2          15
  3    15    55
  4          12
  5          27
  6    55
  7    
  8    12
  9    27
4

2 回答 2

0

如果您不关心数据的顺序。您可以对范围进行排序以从数据中排除空白

于 2012-05-28T06:09:33.300 回答
0

假设您的索引是 A 列、输入列 B 和输出列 C。将此代码添加到模块:

Option Explicit

Sub RemoveBlanks()
    Dim i As Integer
    Dim LastRow As Long
    LastRow = Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row

    Range("B2:B" & LastRow).Copy Range("C2")
    ' Start at the bottom of the range and work your way up
    For i = LastRow To 2 Step -1
        If Len(Range("C" & i)) = 0 Then Range("C" & i).Delete shift:=xlUp
    Next
End Sub

您也可以使用数组公式来获得相同的结果。

为您的输入范围(带有不需要的空格的范围)命名。我打电话给我的 nrWithBlanks。将此公式粘贴到输出列的所有行中:

=IFERROR(INDEX(nrWithBlanks,SMALL((IF(LEN(nrWithBlanks),ROW(INDIRECT("1:"&ROWS(nrWithBlanks))))),ROW(A2)),1),"")

由于它是一个数组公式,因此您需要在将其粘贴到单元格后按 CTRL+SHIFT+ENTER。

于 2012-05-28T05:33:33.943 回答