동일한 행의 해당 범위가 비어 있지 않은 경우 셀을 강조 표시하는 VBA


0

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

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

D6에서 DX98까지의 모든 시트를 확인할 수있는 버튼을 추가 할 수 있습니까? 수량이 발견되어 C의 해당 셀이 비어 있으면 C가 빨간색으로 표시되고 단순한 MsgBox는 파일.

내가 작업하고있는 파일은 다음과 같습니다. http://s000.tinyupload.com/?file_id=00523976624440052148


왜 VBA를 사용합니까? 왜 조건부 서식?
Raystafarian

조건부 서식을 확인하겠습니다. 나는 사용자가 조작 할 수 없도록하고 싶다.
Suvodip Mitra

답변:


0

매크로 / 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 행에 값이없는 경우 상품명 단가 , 당신이 그들에 무엇이든 적을 때까지 그 세포에 빨간색으로 표시됩니다.

이 코드는 사용자 정의하려는 경우 매우 쉽게 수정할 수 있습니다.


안녕하세요 jcbermu, 덕분에 많은 훌륭한 일했다. 나는 그것을 사용할 수있다. :)
Suvodip Mitra

이 행 검색에 대한 쿼리 만 수행하면 공백으로 테스트 할 셀이 보호되는 경우 오류가 발생합니까?
Suvodip Mitra

나는 그렇게 생각하지 않는다. 그러나 셀이 보호되어 문제가 발생하면 다음 행을 삽입하십시오. wks.Protect "password", UserInterfaceOnly:=True 선 앞에 For i = 6 To 98. 어디에 암호 워크 시트를 보호하기 위해 사용하는 것과 동일한 암호입니다.
jcbermu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.