返回列表 上一主題 發帖

[發問] 一個工作表按條件存為不同PDF

[發問] 一個工作表按條件存為不同PDF

Attendance Data Report 存分店PDF.rar (134.62 KB)

有一個出勤表內有不同分店員工出勤資料, 求教如何以VBA按條件SAVE為以分店名為名的PDF.
現時要每個分店選定範圍才SAVE PDF, 非常慢及浪費時間.
有勞協助!:L :'(

Attendance Data Report TEST5.rar (135.12 KB) 回復 1# missbb


我可以將SHOP A及SHOP B進行篩選, 但是不知如何:
1)將A, B等SHOP成為變數, 再以迴圈完成, 因為其實有30 SHOP, 要設立ARRAY(1,2,3.....30)嗎?
2) 如何可以一次過經將不同SHOP獨立存為成30個PDF呢?

已看了書但確實領會不了, 求教!:'(

TOP

回復 2# missbb
2007版是否已有另存成PDF檔功能?
以下在2010版本可行
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. With ActiveSheet
  4. For Each a In .Range(.[E4], .[E4].End(xlDown))
  5.   d(a.Value) = ""         '取得所有不重複分店
  6. Next
  7. For Each ky In d.keys
  8.      .Range("B4").AutoFilter field:=4, Criteria1:=ky
  9.      If Dir("D:\" & ky & ".pdf") <> "" Then Kill "D:\" & ky & ".pdf"  '同名檔案刪除
  10.      .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  11.         "D:\" & ky & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
  12.         IgnorePrintAreas:=False, OpenAfterPublish:=True  '另存成PDF檔案
  13. Next
  14. If .FilterMode = True Then .ShowAllData '顯示所有資料
  15. End With
  16. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 missbb 於 2015-8-1 09:08 編輯

回復 3# Hsieh


多謝回覆, 已可以將A分店及B分店變成PDF, 但每個PDF有114頁, 因為向下的空白列都一併變成了PDF.
1)請問如何可以去除A分店的空白列?
2) 另如何可以調整成一頁, 直向A4呢? (另附件) PDF 樣辦.pdf (41.75 KB)
3)有沒有在PDF插入指定電連結的方法?

有勞:'( [attach]21598[/attach][attach]21598[/attach]

TOP

回復 4# missbb 3

另外, 想將檔名變為A 201507, 改了下面的碼, 但檔名仍然是A, 為甚麼呢?

    If Dir("D:\" & ky & "201507" & ".pdf") <> "" Then Kill "D:\" & ky & "201507" & ".pdf" '同名檔案刪除
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

TOP

回復 3# Hsieh

有勞再協助!

TOP

回復 5# missbb


         If Dir("D:\" & ky & "201507.pdf") <> "" Then Kill "D:\" & ky & "201507.pdf"  '同名檔案刪除
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

        "D:\" & ky & "201507.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True  '另存成PDF檔案
Next

TOP

回復 7# starry1314

你好, 但我加入了新程式碼, 仍然有問題, 可幫忙看看嗎?

VBA Attendance Data Report to PDF 20150801 test.rar (129.66 KB)

TOP

回復 8# missbb
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. With ActiveSheet
  4. For Each a In .Range(.[E4], .[E4].End(xlDown))
  5.   d(a.Value) = ""         '取得所有不重複分店
  6. Next
  7. For Each ky In d.keys
  8.      .Range("B4").AutoFilter field:=4, Criteria1:=ky
  9.      If Dir("D:\" & ky & "201507.pdf") <> "" Then Kill "D:\" & ky & "201507.pdf"  '同名檔案刪除
  10.      .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
  11.         "D:\" & ky & "201507.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
  12.         IgnorePrintAreas:=False, OpenAfterPublish:=True  '另存成PDF檔案
  13. Next
  14. If .FilterMode = True Then .ShowAllData '顯示所有資料
  15. End With
  16. End Sub
複製代碼

TOP

回復 9# starry1314 1

感謝, 但問題是一轉PDF就是113頁, 是選定範圍的問題嗎?
另如何設定邊界?是在轉之前做好了設定才轉或是在VBA碼內設定?

TOP

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題