gpt4 book ai didi

excel - 同时将多张工作表导出为 PDF,无需使用 ActiveSheet 或 Select

转载 作者:行者123 更新时间:2023-12-01 17:29:43 35 4
gpt4 key购买 nike

它已经深入我的脑海,为了避免 bug 并提供良好的用户体验,最好避免使用 .Select.Activate ActiveSheetActiveCell

记住这一点,有没有办法在工作簿中的 Sheets 子集上使用 .ExportAsFixedFormat 方法,而不使用上述方法之一?到目前为止,我能想到的唯一方法是:

  1. 使用For Each;但是,这会产生单独的 PDF 文件,这并不好。
  2. 使用与宏记录器生成的代码类似的代码,该代码使用 .SelectActiveSheet:

    Sheets(Array("Sheet1", "Chart1", "Sheet2", "Chart2")).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "exported file.pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, openafterpublish:= True

也许不使用ActiveSheet是不可能的,但我至少可以以某种方式绕过使用.Select吗?

我已经尝试过这个:

Sheets(Array("Sheet1", "Chart1", "Sheet2","Chart2")).ExportAsFixedFormatType:= _
xlTypePDF, Filename:= "exported file.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, openafterpublish:= _
True

这会产生:

error 438: Object doesn't support this property or method

最佳答案

我不想挖出一个老问题,但我不想看到有人偶然发现这个问题,并在其他答案中诉诸代码体操。 ExportAsFixedFormat 方法仅导出可见工作表和图表。这更干净、更安全、更容易:

Sub Sample()

ToggleVisible False

ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"exported file.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

ToggleVisible True

End Sub

Private Sub ToggleVisible(state As Boolean)
Dim ws As Object

For Each ws In ThisWorkbook.Sheets
Select Case ws.Name
Case "Sheet1", "Chart1", "Sheet2", "Chart2"
Case Else
ws.Visible = state
End Select
Next ws
End Sub

关于excel - 同时将多张工作表导出为 PDF,无需使用 ActiveSheet 或 Select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796286/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com