伊莉討論區

標題: VBA在MaC系統,取變數的檔名轉存PDF,出現列印錯誤 [打印本頁]

作者: y2ss    時間: 2019-5-27 09:46 AM     標題: VBA在MaC系統,取變數的檔名轉存PDF,出現列印錯誤

想在excel中利用變數組合好不同欄位的資料當作轉存PDF的檔名,但遇到的問題是在windows(win10/2013)上跑下面的vba可以正常的轉存出我要的PDF檔名,可是在Mac(10.13.6/Mac版Microsoft@Excel(v16.23))上會出現"列印時出現錯誤",但只要把變數組合成的檔名設定成一個固定的文字就可以正常的轉存,雖然暫時可以用可是還是很不方便,不知道是否有方法可以解決這個問題,謝謝。
Sub PDF轉存()
'
' PDF轉存 巨集
'
    Filename = Worksheets("ExportPDF").Range("A1") 'Mac上會出現列印錯次/但windows上可以正常轉存
    'Filename = "文字檔" 'Mac上改用一個固定文字可以正常轉存
    Sheets("表單").Select '轉存 表單 上的內容為PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Excel.ActiveWorkbook.Path & "/" & Filename & ".pdf", Quality:= _
        xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    Sheets("ExportPDF").Select  '回到 ExportPDF 分頁
    Selection.ClearContents
End Sub


作者: y2ss    時間: 2019-5-27 04:16 PM

加了.value了,還是出現列印錯誤
作者: y2ss    時間: 2019-5-28 01:52 PM

y2ss 發表於 2019-5-27 04:16 PM
加了.value了,還是出現列印錯誤

是說把A1這個儲存格格式設定為"文字"嗎?有設定為文字了,但還是會出現列印錯誤。組合試過"文字"儲存格格式+.value與"文字"儲存格格式也是會出現列印錯誤。
作者: tryit244178    時間: 2019-5-29 09:12 AM

本帖最後由 tryit244178 於 2019-5-29 02:50 PM 編輯

你下面有一行
'Filename = "文字檔" 'Mac上改用一個固定文字可以正常轉存
你把儲存格a1裡的值貼到這行,用這行試。這樣能轉成功嗎?
作者: y2ss    時間: 2019-5-30 04:37 PM

本帖最後由 y2ss 於 2019-5-30 04:42 PM 編輯
tryit244178 發表於 2019-5-29 09:12 AM
你下面有一行
'Filename = "文字檔" 'Mac上改用一個固定文字可以正常轉存
你把儲存格a1裡的值貼到這行,用 ...

[以下都是測試MAC系統的結果]
也是無法正常轉存,一樣出現列印錯誤。後來多方嘗試下發現,如果一開始使用巨集去錄製一個轉存PDF的腳本,再修改精簡成如上面的腳本,可以成功的利用帶變數組合的檔名Range(a1)成功轉存成PDF,但只要Range(a1)裡的變數有變動的話,如原本為"123_0529"變成"123_0530"的話,就會出現列印錯誤,但如果改回原本的變數值"123_0529"的話,又可以正常轉存成PDF,所以我猜測並不是因為輸出檔名是用""(固定文字)表示的檔名才能成功輸出,而是因為用""(固定文字)表示,檔名不會產生異動,才會成功轉成PDF。但這問題在windows下不會發生,很無言。先謝謝你的耐心回復。

PS:我是在開啟檔案下,點擊按鈕(巨集),來直接執行巨集(轉PDF)。


作者: tryit244178    時間: 2019-5-31 09:22 AM

本帖最後由 tryit244178 於 2019-5-31 11:56 AM 編輯

手上沒mac又隔著網路,其實我也是瞎子摸象
再加上我跳槽到LibreOffice,現在連MS Office都沒有了
沒能幫上忙
作者: y2ss    時間: 2019-5-31 09:40 AM

tryit244178 發表於 2019-5-31 09:22 AM
手上沒mac又隔著網路,其實我也是瞎子摸象
再加上我跳槽到LibreOffice,現在連office都沒有了
...

不會~還是謝謝,而且有試有機會,畢竟每個人看事情的面跟方法都不一樣,只怪我VBA功力太淺或許沒看到根本關鍵的問題點。




歡迎光臨 伊莉討論區 (http://a16.eyny.com/) Powered by Discuz!