Столбец автозаполнения на основе данных другого столбца

У меня есть набор данных, который показан на изображении ниже. Я также показал, какой результат я хотел бы получить на изображении.

Чтобы объяснить, я хочу, чтобы автозаполнение заполняло ячейки только на основе ячеек соседнего столбца (столбца I/S). Между строками могут быть пробелы, и это следует пропустить и продолжить до последней строки.

у меня есть формула для автозаполнения вплоть до последней строки и даже для той, которая работает аналогично ручному двойному щелчку для автозаполнения.

Был бы признателен за любую помощь, чтобы иметь возможность заставить это работать.

Код, который я использую для автозаполнения, приведен ниже. Результат тоже на картинке.

Dim Name As String
For Each C In Range("H2:H" & Cells(rows.Count, 2).End(xlUp).Row)
    If Cells(C.Row, 1) > "" Then
        Name = Cells(C.Row, 1)
    Else
        Cells(C.Row, 1).Value = Name
    End If
Next

Также по какой-то причине этот код всегда автозаполняет столбец A. Как я могу сослаться на столбец, который мне нужен для выполнения автозаполнения?

Данные и результаты

Примечание. Значения могут быть любыми (1 и 4 приведены только для справки)

Спасибо!


person Hussain Mithaiwala    schedule 11.03.2019    source источник
comment
В: Я не понимаю, почему вы проверяете, больше ли (›) пробела в этом If Cells(C.Row, 1) > "" Then. Это должно проверить, имеет ли ячейка значение? Если это так, вам нужно изменить его на If Cells(C.Row, 1) <> "" Then.   -  person Zack E    schedule 11.03.2019


Ответы (1)


Else
    Cells(C.Row, 1).Value = Name

присваивает значение ячейки в столбце A из-за ,1. Измените 1 на числовое значение столбца, в который вы хотите заполнить данные.

Пример: если вы хотите, чтобы данные заполнялись в столбце C, вы должны использовать:

Else
    Cells(C.Row, 3).Value = Name
person Zack E    schedule 11.03.2019
comment
Привет Зак, Спасибо за блестящую мысль. Я сделал это, как вы предложили, и изменил номера столбцов по мере необходимости, и это действительно делает работу, которую я намеревался сделать. однако просто обратите внимание, что он также автоматически заполняет пустые строки. С этим я могу работать. - person Hussain Mithaiwala; 12.03.2019
comment
Я бы также изменил If Cells(C.Row, 1) > "" Then на If Cells(C.Row, 1) <> "" Пожалуйста, примите ответ, если он вам подходит :) - person Zack E; 12.03.2019
comment
Привет, Зак, извини. Да я тоже менял. Ваша логика имела смысл. - person Hussain Mithaiwala; 13.03.2019