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 。 该代码将A4至A300保持不变。
假设你想要静态值,我会使用一个循环。 下面的那个将会把所有空的单元格填满:
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"