標題:
[發問]
一個工作表按條件存為不同PDF
[打印本頁]
作者:
missbb
時間:
2015-7-27 20:10
標題:
一個工作表按條件存為不同PDF
[attach]21538[/attach]
有一個出勤表內有不同分店員工出勤資料, 求教如何以VBA按條件SAVE為以分店名為名的PDF.
現時要每個分店選定範圍才SAVE PDF, 非常慢及浪費時間.
有勞協助!:L :'(
作者:
missbb
時間:
2015-7-28 22:45
[attach]21552[/attach]
回復
1#
missbb
我可以將SHOP A及SHOP B進行篩選, 但是不知如何:
1)將A, B等SHOP成為變數, 再以迴圈完成, 因為其實有30 SHOP, 要設立ARRAY(1,2,3.....30)嗎?
2) 如何可以一次過經將不同SHOP獨立存為成30個PDF呢?
已看了書但確實領會不了, 求教!:'(
作者:
Hsieh
時間:
2015-7-30 23:15
回復
2#
missbb
2007版是否已有另存成PDF檔功能?
以下在2010版本可行
Sub ex()
Set d = CreateObject("Scripting.Dictionary")
With ActiveSheet
For Each a In .Range(.[E4], .[E4].End(xlDown))
d(a.Value) = "" '取得所有不重複分店
Next
For Each ky In d.keys
.Range("B4").AutoFilter field:=4, Criteria1:=ky
If Dir("D:\" & ky & ".pdf") <> "" Then Kill "D:\" & ky & ".pdf" '同名檔案刪除
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\" & ky & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True '另存成PDF檔案
Next
If .FilterMode = True Then .ShowAllData '顯示所有資料
End With
End Sub
複製代碼
作者:
missbb
時間:
2015-8-1 08:57
本帖最後由 missbb 於 2015-8-1 09:08 編輯
回復
3#
Hsieh
多謝回覆, 已可以將A分店及B分店變成PDF, 但每個PDF有114頁, 因為向下的空白列都一併變成了PDF.
1)請問如何可以去除A分店的空白列?
2) 另如何可以調整成一頁, 直向A4呢? (另附件)[attach]21599[/attach]
3)有沒有在PDF插入指定電連結的方法?
有勞:'( [attach]21598[/attach][attach]21598[/attach]
作者:
missbb
時間:
2015-8-1 09:14
回復
4#
missbb
3
另外, 想將檔名變為A 201507, 改了下面的碼, 但檔名仍然是A, 為甚麼呢?
If Dir("D:\" & ky &
"201507"
& ".pdf") <> "" Then Kill "D:\" & ky &
"201507"
& ".pdf" '同名檔案刪除
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
作者:
missbb
時間:
2015-8-1 23:39
回復
3#
Hsieh
有勞再協助!
作者:
starry1314
時間:
2015-8-2 09:25
回復
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
作者:
missbb
時間:
2015-8-2 12:02
回復
7#
starry1314
你好, 但我加入了新程式碼, 仍然有問題, 可幫忙看看嗎?
[attach]21621[/attach]
作者:
starry1314
時間:
2015-8-2 12:13
回復
8#
missbb
Sub ex()
Set d = CreateObject("Scripting.Dictionary")
With ActiveSheet
For Each a In .Range(.[E4], .[E4].End(xlDown))
d(a.Value) = "" '取得所有不重複分店
Next
For Each ky In d.keys
.Range("B4").AutoFilter field:=4, Criteria1:=ky
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
If .FilterMode = True Then .ShowAllData '顯示所有資料
End With
End Sub
複製代碼
作者:
missbb
時間:
2015-8-2 12:28
回復
9#
starry1314
1
感謝, 但問題是一轉PDF就是113頁, 是選定範圍的問題嗎?
另如何設定邊界?是在轉之前做好了設定才轉或是在VBA碼內設定?
[attach]21622[/attach]
作者:
starry1314
時間:
2015-8-2 13:05
回復
10#
missbb
先在EXCEL設定好比較快,上方 【版面配置】可調整
作者:
missbb
時間:
2015-8-2 13:32
回復
11#
starry1314
成功, 多謝!:'(
作者:
missbb
時間:
2015-8-4 14:06
各位,有新問題, 因想另設一個輸入的選擇, 已定如下, 如有兩個問題未做到:
(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
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)