VBA выделяет ячейку, если соответствующий диапазон в той же строке не пуст

VBA выделяет ячейку, если соответствующий диапазон в той же строке не пуст

Я пытаюсь принудительно указать название продукта в столбце B файла, если в столбце D-DX (Кол-во) есть какое-либо значение.

Рационально, если получен новый запрос на еду, которого нет в файле, пользователь может временно ввести название еды, а затем ввести количество. Это делается для того, чтобы оператор не ввел значение по ошибке или не забыл передать информацию о новом добавленном элементе.

Можно ли добавить кнопку, которая могла бы проверять все листы от D6 до DX98, и если найдено какое-либо количество, и если соответствующая ячейка в C пуста, то помечать C красным цветом, а простое сообщение MsgBox сообщать о наличии ошибки в файле.

Файл, над которым я работаю, выглядит следующим образом: http://s000.tinyupload.com/?file_id=00523976624440052148

решение1

Откройте Макросы / Visual Basic, дважды щелкните по листу и вставьте этот код справа:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wkb As Workbook
Dim wks As Worksheet
Dim wksRange As Range
Set wkb = ThisWorkbook
Set wks = ActiveSheet
For i = 6 To 98 ' rows to be sweeped
    Set wksRange = wks.Range(Cells(i, 4), Cells(i, 127)) ' check from column 4 (D) to 127(DW)
    'Paint grey cells on columns A to C
    color_cell_a = Cells(i, 1).Interior.Color
    Cells(i, 2).Interior.Color = color_cell_a
    Cells(i, 3).Interior.Color = color_cell_a
    'If on the row there are values
    If WorksheetFunction.CountA(wksRange) <> 0 Then
        itemName = Cells(i, 2)
        itemPrice = Cells(i, 3)
        'Change color on column B
        If itemName = "" Then
            Cells(i, 2).Interior.Color = RGB(184, 0, 0)
        End If
        'Change color on column C
        If itemPrice = "" Then
            Cells(i, 3).Interior.Color = RGB(184, 0, 0)
        End If
    End If
Next i
End Sub

Он проверяет область покрытия D6:DW98и наличие значений в строке безИмя элементаиЦена за единицу товара, он будет отмечать эти ячейки красным цветом до тех пор, пока вы не запишете в них что-нибудь.

Код очень легко изменить, если вы захотите его настроить.

Связанный контент