我正在尝试仅在设置的范围内使用此公式自动填充空白单元格。
我已经测试过添加cells.specialcells(xlCellTypeBlanks)
,但无法正常工作。
Sub test()
Dim lastRw As Long
Dim Rng As Range
lastRw = Cells(Rows.Count, "P").End(xlUp).Row
Set Rng = Range("Q1:Q" & lastRw)
Rng = "=IFERROR(VLOOKUP(RC[-1],R1C1:R1C14,14,FALSE),"""")"
Rng.Value = Rng.Value
End Sub
我希望它只能将公式粘贴到空白单元格上。
答案 0 :(得分:0)
欢迎来到SO。我建议以后确保为特定语言添加适当的标签。对我来说这显然是VB6(vba),但对其他人来说可能不清楚。清晰的标签将有助于接收答案。
我会尽量保持简单。一个想法:
我将使用for循环使用“ 1-by-1”。
sub test()
dim fillRange as range
dim lastRow as long
dim i as range 'instead of cell / cells
lastRow = activesheet.usedrange.rows.count 'Alternative for finding last row
set fillRange = range("Q1:Q" & lastRow)
for each i in fillRange 'i will be 1 cell in filLRange at a time
'check if the current cell is empty (="") or contains nothing (isnull). If it does, insert formula
if i = "" or isnull(i) then i = "=IFERROR(VLOOKUP(RC[-1],R1C1:R1C14,14,FALSE),"""")"
next i
calculate 'Make sure the formula takes effect
end sub
可能有些拼写错误,因为我将其写在头上。 (特别是行数,如果失败,请使用您自己的行数。i as cell
也可能必须是i as cells
。)但是它应该可以解决问题。