Excel vba自动填充只有空单元格

我有一个数据高达A300的A列。

在这个范围内,其中一些单元格是空的,一些包含值。

在VBA中,我设置了单元格A1的公式,然后使用自动填充function将它设置在我的列(最多A300)上,如下所示:

ws.Range("A1").Select Selection.AutoFill Destination:=ws.Range(ws.Cells(1, 1), ws.Cells(300, 1)) 

我的问题是,包含在一些单元格上的数据也被删除! 我试图自动填充,但只能通过空容器。

我试图在我的工作表上添加一个filter,如下所示:

 ws.Range("$A$1:$A$300").AutoFilter Field:=1, Criteria1:="=" 

然后,我重用了自动填充function,但似乎填满了过滤的单元格…

我们不能添加“自动填充单元格”这样的参数吗? 像这样的东西:

 Selection.AutoFill Destination:=ws.Range(ws.Cells(1, 1), ws.Cells(300, 1)), Criteria1:="=" 

感谢您的回复!

道歉,我想知道你的问题 – 想填补所有空白单元格中的值A1? – 干得好:

 Sub Replace() If Trim(Range("A1").Value) = "" Then MsgBox "There's no value in A1 to copy so there's nothing to copy to all blank cells", vbInformation, "Nothing in A1" Exit Sub Else Range("A1:A300").SpecialCells(xlCellTypeBlanks).Select Selection.Value = Range("A1").Value End If End Sub 

数据如下:

在这里输入图像说明

我会做一个副本,而不是一个填充:

 Sub luxation() Range("A1").Formula = "=ROW()" Dim rDest As Range Set rDest = Intersect(ActiveSheet.UsedRange, Range("A1:A300").Cells.SpecialCells(xlCellTypeBlanks)) Range("A1").Copy rDest End Sub 

有了这个结果:

在这里输入图像说明

注意:

公式调整后复制。

编辑#1:

请注意,在某些情况下,此代码将无法工作。 UsedRange可能不会延伸到单元格A300

例如,如果工作表除了A1中的公式和A3中的一些值之外是完全空的。 在这种情况下, Rdest将只包括单个单元格A2 。 该代码将A4A300保持不变。

假设你想要静态值,我会使用一个循环。 下面的那个将会把所有空的单元格填满:

 Sub AllFillerNoKiller() Dim ws As Worksheet Set ws = Worksheets("Sheet1") For Each c In ws.Range("A1:A300") If c.Value = "" Then c.Value = "poop" Next End Sub 

你也可以使用下面的代码:

 stAddress = Sheet1.Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Address Sheet1.Range(st).Value = "Empty"