Заменить данные в ячейках на основе содержимого другой ячейки - PullRequest
0 голосов
/ 08 апреля 2020

Я не слишком знаком с VBA, и мне немного трудно написать макрос, который может просматривать целые диапазоны. Я хочу автоматизировать способ замены ячеек на одном листе с нулевым значением в указанном столбце c.

У меня был некоторый ограниченный успех с операторами IF Then Else, использующими заданные c значения ячеек, но я не могу понять, используя диапазоны ячеек. т.е.

IF Range("B1").Value = "Null" And Range("A1").Value = ("*book") Then Range("C1").Value = ("book")

Вот пример набора данных:

Sample data set

В столбце A указаны типы книг, таблиц и стул. У каждого элемента в описании есть слово «Книга», «Стол» или «Стул», в столбце «Б» должно быть описание категории, но в некоторой ячейке указано «Нуль». То, что я пытаюсь сделать, - это если значение в столбце B говорит «Нуль», а затем ввести описание столбца, таблицы или стула в столбец C на основе значения в столбце А. Если значение в столбце В не равно нулю тогда ничего не делай. Это всего лишь пример, реальный набор данных имеет около 25 000 строк.

1 Ответ

0 голосов
/ 09 апреля 2020

Вот очень грубый пример кода. Есть много способов приблизиться к этому.

Sub test()

Dim i As Integer
Dim lRow As Long
Dim ws As Worksheet

Set ws = ThisWorkbook.Worksheets("Sheet1")
' get the row number of the last row with data in column A
lRow = ws.Cells(Rows.Count, "A").End(xlUp).Row
' Start in row 2
For i = 2 To lRow
    If Range("B" & i).Value = "Null" And Range("A" & i).Value Like "*book" Then
        Range("C" & i).Value = ("book")
    End If
Next i

End Sub

Редактировать: скорректированный код для динамического определения последней строки с данными.

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