44.4 38보다 크거나 동일하고, 그에 대한 확인이 38 인 행의 값보다 크거나 같은 의미없이 다른 조건의 결과의 실행 녹색이 될거야.
조건을 더 구체적으로 지정해야합니다. 구체적으로 "X와 Y 사이"부분을 지정해야합니다.
이
Select Case ActiveSheet.Cells("C16").Value
Case 38 To 44.4
Target.Interior.Color = vbGreen
Case Else
Target.Interior.Color = vbRed
End Select
코드은 "33와 39.4 사이 녹색"과 같을 것이다 :
Select Case ActiveSheet.Cells("C16").Value
Case 33 To 39.4
Target.Interior.Color = vbGreen
Case Else
Target.Interior.Color = vbRed
End Select
이 코드 "38와 44.4 사이 녹색"것 - 예를 들어, 이것은
Select Case
블록의 작업처럼 보인다
패턴에 주목 하시겠습니까? 그것을 매개 변수화 자체 절차에 넣어 :
Public Sub ConditionalHighlight(ByVal checkCell As Range, ByVal target As Range, ByVal lowerLimit As Double, ByVal upperLimit As Double)
'ensure the value is a Double (and not an error or a string):
If VarType(checkCell.Value) <> vbDouble Then Exit Sub
'work with an actual Double instead of the Variant we get off the cell:
Dim checkValue As Double
checkValue = CDbl(checkCell.Value)
Select Case checkValue
Case lowerLimit To upperLimit
target.Interior.Color = vbGreen
Case Else
target.Interior.Color = vbRed
End Select
End Sub
이제 당신의 버튼 'Click
핸들러에서 해당 전화 :
Private Sub Button1_Click()
ConditionalHighlight Range("C16"), Range("whatever"), 38, 44.4
End Sub
Private Sub Button2_Click()
ConditionalHighlight Range("C16"), Range("whatever"), 33, 39.4
End Sub
Private Sub Button3_Click()
ConditionalHighlight Range("C16"), Range("whatever"), 42, 74.4
End Sub
*를 SelectionChange *, 그것은 * 속성 *의되지 않은'Worksheet' **행사**. 'Worksheet_SelectionChange' *는 발생/해고 될 때 해당 이벤트를 처리합니다. * 이벤트 핸들러 * 프로 시저입니다. 사이드 노트, 이벤트 처리기는 '비공개'여야하며, 내 용은 '공개'입니다. –
@ Mat'sMug - Worksheet_SelectionChange가 개인 워크 시트 코드 시트 (그리고 그것이 트리거 할 유일한 장소)에 있고 공개 모듈 코드 시트가 아닌 경우에는 암시 적으로 전용입니다. – Jeeped
@ 지프레드 [음, 음, 객체 브라우저가 보는 것과 다르다] (https://i.stack.imgur.com/CrlPy.png). –