0
내 통합 문서의 모든 시트를 새 통합 문서로 복사하는 매크로 코드가 있습니다. 이것은 잘 작동하지만 문제는 숨겨진 시트도 복사한다는 것입니다. 누군가가 코드를 수정하여 보이는 시트 만 복사하도록 도와 줄 수 있습니까?Excel, VBA 내보내기에서 숨겨진 시트 중지
Sub export()
Dim Sht As Worksheet
Dim DestSht As Worksheet
Dim DesktopPath As String
Dim NewWbName As String
Dim wb As Workbook
Dim i As Long
Set wb = Workbooks.Add
DesktopPath = "C:\Users\" & Environ("USERNAME") & "\Desktop\"
NewWbName = "report " & Format(Now, "yyyy_mm_dd _hh_mm_ss") & ".xlsx"
i = 1
For Each Sht In ThisWorkbook.Sheets
If i <= wb.Sheets.Count Then
Set DestSht = wb.Sheets(i)
Else
Set DestSht = wb.Sheets.Add
End If
Sht.Cells.Copy
With DestSht
.Cells.PasteSpecial (xlPasteValues)
.Cells.PasteSpecial (xlPasteFormats)
.Name = Sht.Name
End With
i = i + 1
Next Sht
Application.DisplayAlerts = False
wb.SaveAs Filename:=DesktopPath & NewWbName, FileFormat:=51
wb.Close
MsgBox "You Can Find The Exported File In Your Desktop.", vbOKOnly + vbInformation, "Export Sucessful!"
Application.DisplayAlerts = True
End Sub
당신은 단지 눈에 보이는 시트를 복사 할 워크 시트 개체의'Visible' 속성을 사용할 수 있습니다. 'Sht.Visible = xlSheetVisible'이면 ... – Socii
고마워. 그게 보이는 시트 만 복사했지만 시작 부분에 빈 시트가 추가되었습니다. – Danny
업데이트 된 코드를 보지 않고서는 말하기 어렵지만, 'i = i + 1' 코드가있는 것 같아요. 'Sht.Visible = xlSheetVisible Then' 문. 확인을 위해 업데이트 된 코드를 추가했습니다. 또한 추가 된 시트를 새 통합 문서의 끝으로 이동시키는'Sheet.Move' 문을 추가했습니다. 자세한 내용은 [https://support.microsoft.com/en-gb/kb/107622]를 참조하십시오. – Socii