반응형
VBA를 사용하여 Excel에서 워크시트 삭제
많은 워크북을 생성하는 매크로가 있습니다.실행 시작 시 매크로에 2개의 스프레드시트가 포함되어 있는지 확인하고 있으면 삭제해 주었으면 합니다.
내가 시도한 코드는:
If Sheet.Name = "ID Sheet" Then
Application.DisplayAlerts = False
Sheet.Delete
Application.DisplayAlerts = True
End If
If Sheet.Name = "Summary" Then
Application.DisplayAlerts = False
Sheet.Delete
Application.DisplayAlerts = True
End If
이 코드는 오류를 반환하고 있습니다.
런타임 오류 #424, 개체가 필요합니다.
제가 포맷을 잘못했을지도 모르지만, 좀 더 쉬운 방법이 있다면 도움이 될 것 같습니다.
고려사항:
Sub SheetKiller()
Dim s As Worksheet, t As String
Dim i As Long, K As Long
K = Sheets.Count
For i = K To 1 Step -1
t = Sheets(i).Name
If t = "ID Sheet" Or t = "Summary" Then
Application.DisplayAlerts = False
Sheets(i).Delete
Application.DisplayAlerts = True
End If
Next i
End Sub
주의:
삭제 중이기 때문에 루프를 거꾸로 실행합니다.
다음 코드를 사용해 보십시오.
For Each aSheet In Worksheets
Select Case aSheet.Name
Case "ID Sheet", "Summary"
Application.DisplayAlerts = False
aSheet.Delete
Application.DisplayAlerts = True
End Select
Next aSheet
사용할 수 있습니다.On Error Resume Next
그러면 워크북의 모든 시트를 반복할 필요가 없습니다.
와 함께On Error Resume Next
에러는 전파되지 않고 억제됩니다.따라서 시트가 존재하지 않거나 어떤 이유로든 삭제할 수 없는 경우에는 아무 일도 일어나지 않습니다.이 시트를 삭제해, 실패해도 상관없습니다.엑셀이 시트를 찾기로 되어있기 때문에 당신은 어떤 검색도 하지 않습니다.
주의: 워크북에 이러한 두 시트만 포함되어 있으면 첫 번째 시트만 삭제됩니다.
Dim book
Dim sht as Worksheet
set book= Workbooks("SomeBook.xlsx")
On Error Resume Next
Application.DisplayAlerts=False
Set sht = book.Worksheets("ID Sheet")
sht.Delete
Set sht = book.Worksheets("Summary")
sht.Delete
Application.DisplayAlerts=True
On Error GoTo 0
Worksheets("Sheet1").Delete
Worksheets("Sheet2").Delete
if 스테이트먼트 내에서 이 조작을 실시합니다.
Application.DisplayAlerts = False
Worksheets(“Sheetname”).Delete
Application.DisplayAlerts = True
언급URL : https://stackoverflow.com/questions/31475376/delete-worksheet-in-excel-using-vba
반응형
'IT' 카테고리의 다른 글
Nodejs를 사용하여 Excel 파일을 작성하는 방법 (0) | 2023.04.18 |
---|---|
"git reset --hard"를 통해 커밋되지 않은 변경 손실로부터 복구 (0) | 2023.04.18 |
Retina 디스플레이 검출 (0) | 2023.04.18 |
UILabel의 NSAttributedString에 탭 가능한 "링크"를 작성하시겠습니까? (0) | 2023.04.18 |
Git에서 분기 토폴로지를 시각화하는 중 (0) | 2023.04.18 |