해결 엑셀2021윈도우10
특정 셀의 내용에 따라 행/열을 숨기는 매크로 있을까요?
R7셀, S7셀이 빈칸일때는 30행 ~ 32행이 자동으로 숨김 상태가 되고
위 두셀이 빈칸이 아닐때는 숨기기 취소인 상태로 만들고 싶은데요, 가능할까요?
밑에는 GPT에 물어봤을때 짜준 코드인데. 이걸 어떻게 실행하는지 모르겠네요
ALT + F11 눌러서 모듈에 복사 붙여넣기 한것만으로는 작동이 안돼더라구요.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim targetRange As Range
Set targetRange = Range("R7:S7") ' 대상 범위 지정
On Error Resume Next ' 에러 발생을 무시하고 계속 진행
' 시트 보호 해제
ActiveSheet.Unprotect Password:="YourPassword" ' "YourPassword"에는 실제로 설정한 시트 비밀번호를 입력해야 합니다.
If Not Intersect(Target, targetRange) Is Nothing Then
' R7 또는 S7 셀의 값이 변경되었을 때
If IsEmpty(Range("R7").Value) And IsEmpty(Range("S7").Value) Then
' R7과 S7이 둘 다 빈칸이라면
Rows("30:32").Hidden = True ' 30~32행 숨김
Else
' R7과 S7 중 하나라도 값이 있다면
Rows("30:32").Hidden = False ' 30~32행 보이게 함
End If
End If
' 시트 다시 보호
ActiveSheet.Protect Password:="YourPassword" ' "YourPassword"에는 실제로 설정한 시트 비밀번호를 입력해야 합니다.
On Error GoTo 0 ' 에러 처리를 원래대로 돌려놓음
End Sub
숫
김
o
y
댓글 2
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range, iCount As Integer Set rng = Union(Range("R7"), Range("T7")) If Intersect(rng, Target) Is Nothing Then Exit Sub If VarType(Range("R7")) = vbEmpty And VarType(Range("T7")) = vbEmpty Then Rows("30:32").EntireRow.Hidden = True Else Rows("30:32").EntireRow.Hidden = False End If End Sub