首页 > 解决方案 > Mac 上的 VBA Excel:打印/导出为 PDF

问题描述

我有这个带有宏的巨大 excel 文件,它在 Windows 上完美运行,但在 MacOs 上它给我一个错误 1004。有人可以帮我翻译以下代码以便它在 Macos 上运行吗?或者实际上,有人可以将它翻译成在 Excel (Macos) 上工作,因为我对编码一无所知。如果有人可以帮助我,我不必在我的 Mac 上安装 Windows :)

Sub SaveAsPdf(train)
    'On Error Resume Next
    'Windows(ThisWorkbook.Name).Activate

    Application.Goto reference:="date"
    days = Year(ActiveCell.Value) & Month(ActiveCell.Value) & Day(ActiveCell.Value)

    Application.Goto reference:="path"
    Path = ActiveCell.Value
    If Right(Path, 1) <> "\" Then
        Path = Path & "\"
    End If

    ws = "Train " & train & " Production schedule"

    Sheets(ws).Select
    Time_Stamp = Format(Now(), "yyyymmdd_HhNn")

    TNimi = Path & ws & Time_Stamp & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    TNimi, Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    ws = "General Schedule " & train
    fname = "General Schedule Train " & train
    Sheets(ws).Select
    Time_Stamp = Format(Now(), "yyyymmdd_HhNn")

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    Path & fname & "_" & Time_Stamp & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    Sheets("Break Plan Input").Select
End Sub

Sub SaveQSheet(train)
    Sheets("Break Plan Input").Select
    Application.Goto reference:="date"
    days = Year(ActiveCell.Value) & Month(ActiveCell.Value) & Day(ActiveCell.Value)

    Application.Goto reference:="path"
    Path = ActiveCell.Value
    If Right(Path, 1) <> "\" Then
        Path = Path & "\"
    End If
    Time_Stamp = Format(Now(), "yyyymmdd_HhNn")
    Sheets("Inspection and Sold Info").Select
    Sheets("Inspection and Sold Info").Copy
    Range("A2").Select
    ActiveWorkbook.SaveAs Filename:=Path & "Train " & train & " Inspection and Sold Info " & Time_Stamp & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
    Sheets("Break Plan Input").Select
End Sub

路径定义

标签: excelvba

解决方案


推荐阅读