返回列表 上一主題 發帖

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

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

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

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

各位,有新問題, 因想另設一個輸入的選擇, 已定如下, 如有兩個問題未做到:
(1)  以SHOP2 輸入A, 另F輸入"201507", 想PDF FILE會轉為"A 201507".PFD但出現錯誤
(2) 在轉PDF後, 如何返回EXCEL, 因為要將每個PDF逐個關閉.

Sub in_box2()
'
Dim shop2 As String
Dim f As String

'
    shop2 = InputBox("Enter your shop code")
    f = InputBox("Enter month of the report")
    Range("B4").AutoFilter Field:=4, Criteria1:=shop2
    Range("B4").CurrentRegion.Select
   
ChDir "C:\Users\Desktop\"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:= _
        "C:\Users\Desktop\" & f & "2015.pdf"), Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
'
   
End Sub

TOP

回復 11# starry1314


    成功, 多謝!:'(

TOP

回復 10# missbb


    先在EXCEL設定好比較快,上方 【版面配置】可調整

TOP

回復 9# starry1314 1

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

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

回復 7# starry1314

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

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

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

回復 3# Hsieh

有勞再協助!

TOP

回復 4# missbb 3

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

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

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題