![같은 행의 해당 범위가 비어 있지 않은 경우 VBA가 셀을 강조 표시합니다.](https://rvso.com/image/1451242/%EA%B0%99%EC%9D%80%20%ED%96%89%EC%9D%98%20%ED%95%B4%EB%8B%B9%20%EB%B2%94%EC%9C%84%EA%B0%80%20%EB%B9%84%EC%96%B4%20%EC%9E%88%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B2%BD%EC%9A%B0%20VBA%EA%B0%80%20%EC%85%80%EC%9D%84%20%EA%B0%95%EC%A1%B0%20%ED%91%9C%EC%8B%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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
하고 없는 행에 값이 있는지 확인합니다.상품명그리고단가, 아무것도 적을 때까지 해당 셀에 빨간색으로 표시됩니다.
코드를 사용자 정의하려는 경우 수정하기가 매우 쉽습니다.