같은 행의 해당 범위가 비어 있지 않은 경우 VBA가 셀을 강조 표시합니다.

같은 행의 해당 범위가 비어 있지 않은 경우 VBA가 셀을 강조 표시합니다.

D열에서 DX(수량)까지의 값이 있는 경우 파일의 B열에 음식 이름을 적용하려고 합니다.

파일에 나타나지 않는 새로운 음식 요청이 수신되면 사용자는 일시적으로 음식 이름을 입력한 다음 수량을 입력할 수 있다는 것이 합리적입니다. 이는 운영자가 실수로 값을 입력하거나 추가한 새 항목의 정보를 전달하는 것을 잊어버리지 않도록 하기 위한 것입니다.

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하고 없는 행에 값이 있는지 확인합니다.상품명그리고단가, 아무것도 적을 때까지 해당 셀에 빨간색으로 표시됩니다.

코드를 사용자 정의하려는 경우 수정하기가 매우 쉽습니다.

관련 정보