Как мне получить эту формулу, чтобы заполнить только пустые ячейки? - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь автоматически заполнить только пустые ячейки с помощью этой формулы в заданном диапазоне.

Я тестировал добавление 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

Я хочу, чтобы она могла вставлять формулу только в пустые ячейки.

1 Ответ

0 голосов
/ 18 апреля 2019

Добро пожаловать на SO. Я бы посоветовал в будущем добавить соответствующие теги для конкретного языка. Это для меня явно VB6 (vba), но для других это может быть неясно. Четкая метка поможет получить ответы.

Я постараюсь сделать это проще. Идея:

  1. Найти все ячейки, которые потенциально должны быть fileld
  2. Пройдите через них и выясните, если они пусты
  3. Либо заполните ячейки 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.) Но это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...