Добро пожаловать на SO. Я бы посоветовал в будущем добавить соответствующие теги для конкретного языка. Это для меня явно VB6 (vba), но для других это может быть неясно. Четкая метка поможет получить ответы.
Я постараюсь сделать это проще. Идея:
- Найти все ячейки, которые потенциально должны быть fileld
- Пройдите через них и выясните, если они пусты
- Либо заполните ячейки 1 на 1, либо переопределите диапазон, чтобы включить только пустые ячейки.
Я пойду с «1 на 1», используя цикл for.
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
.) Но это должно сработать.