스프레드 시트의 모든 조건부 서식을 바꾸려고합니다 (30 개 이상의 서식 규칙). 조건부 서식이 필요한 각 범위에 대해 하나의 하위가있는 모든 서식 규칙에 대한 일련의 하위 항목이있는 클래스 모듈 (ConditionalFormatting이라고 함)을 만들었습니다. 이 작업을 수행하려고 생각한 유일한 방법 (제안 사항에 대해 개방)은 workstation_change 이벤트가 FormattingSubs라는 ConditionalFormatting 클래스의 하위를 호출하여 형식을 수행하기 위해 올바른 하위를 호출하도록하는 것입니다.
다음은 FormattingSubs의 코드입니다.
Public Sub FormattingSubs(target As Range)
'have logic here to call the right sub based on what target.address
'is from the worksheet.change event
Select Case target.Name.Name
Case "head_pouch_lot_number"
Call HeadPouchLotNumber(target)
Case "head_consumed_pouch_lot"
Call HeadConsumedPouchLot(target)
Case "section_one_heading"
Call SectionOneHeading
End Select
End Sub
다음은 서식 지정 하위 중 하나 인 HeadConsumedPouchLot에 대한 코드입니다. (색상 변수는 별도의 모듈에 정의 된 공용 상수입니다.)
Public Sub HeadConsumedPouchLot(target As Range)
Dim head_consumed_pouch_lot As Range
Dim ws As Worksheet
Set head_consumed_pouch_lot = ActiveSheet.Range("head_consumed_pouch_lot")
Set ws = target.Worksheet
If target.address <> head_consumed_pouch_lot.address Then
Set target = head_consumed_pouch_lot
End If
With ws.Range(target.address)
If Range("section_one_heading").Value <> "" Then
.Interior.ColorIndex = red
.Font.ColorIndex = yellow
Else
.Interior.ColorIndex = lightgreen
.Font.ColorIndex = black
End If
End With
문제는 실제로 색상을 설정하려고 할 때 "응용 프로그램 정의 또는 객체 정의 오류"라는 1004 오류가 발생한다는 것입니다.
내 코드에 어떤 문제가 있습니까?
내가 알아 낸 문제는 시트를 변경하기 전에 시트 보호를 해제해야한다는 것입니다! 제가 답을 찾도록 도와 주셔서 감사합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다