這是一個WORD 2003 寫的 VBA

CTRL +p 列印時,執行 VBA巨集

抓取 時間、第一行、第二行、表格(2,2) 的內容

組成新的檔名 20240328_121004_APPLE_某公司_詢價單.doc

但存檔畫面,始終只有 20240328_121004_APPLE

word 2003 vba 另存新檔的 bug ?

word 2003 vba 另存新檔的 bug ?

但在 VBA 的除錯畫面,filename 上顯示的卻是正常的

有在別台電腦試過了,一樣的情況,請問有人知道是什麼原因?


二、我試過 produc vender table 排列組合(六種),只有兩種情況是正常


filename = Format(Now, "YYYYMMDD_HHMMSS") & Product & Vendor & Table 20240328_122943_APPLE
filename = Format(Now, "YYYYMMDD_HHMMSS") & Product & Table & Vendor 20240328_123002_APPLE

filename = Format(Now, "YYYYMMDD_HHMMSS") & Vendor & Table & Product 20240328_123015_某公司_詢價單_APPLE
filename = Format(Now, "YYYYMMDD_HHMMSS") & Table & Vendor & Product 20240328_123224_詢價單_某公司_APPLE

filename = Format(Now, "YYYYMMDD_HHMMSS") & Vendor & Product & Table 20240328_123858_某公司_APPLE
filename = Format(Now, "YYYYMMDD_HHMMSS") & Table & Product & Vendor 20240328_123927_詢價單_APPLE

這是範例檔案
[點擊下載]
因為您文件中少刪一個不可見字元chr(7),所以檔名被切掉了
word的表格內,每個格子都是用 Chr(13) + Chr(7) 做結尾
雖然有些格子看似空白,但從字串長度來檢查就可以發現
其實還有2個不可見字元,只要是格子內的長度都要+2

有2種正常,是因為剛好把格子內的資料放在最後面
但那只是看起來正常,檔名還是會多2個不可見字元

然後試了不同版本,發現大概是編碼支援程度的不同
2003,檔名被切掉
2007,檔名內chr(7),變成符號補上
2016,檔名內chr(7),變成空格補上










文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!