Board logo

標題: [發問] vba 開啟 ie 另存新檔問題 [打印本頁]

作者: koshi0413    時間: 2016-5-15 12:42     標題: vba 開啟 ie 另存新檔問題

以下是小弟在網路上看的方式照改的。
需要的動作,開啟ie > 列印pdf > 自動帶入所需檔名 > 存檔
目前的動作,開啟ie > 列印pdf ....掛了

有高手可幫忙嘛?
對了,有看到一篇不錯,7樓 GBKEE 大這篇,為另存網頁,但~~有些我要的網頁都跑不了@@
http://forum.twbts.com/viewthread.php?tid=12273
這方式應該可也另存成pdf吧?

ps: ie 可改用 chrome 來列印pdf嘛?
pps:小弟不是學程式的,所以很多都看不懂,只是一個一個試
  1. Sub 工作表1()

  2.     Sheets("工作表1").Select
  3.    
  4. Dim xlsName, xlsNameNo, MyName, NewName, SavePath, DDate, URL As String

  5.     xlsName = ActiveWorkbook.Name                 ''檔名
  6.     xlsNameNo = Mid(s, 1, 4)                      ''檔名前4字元
  7.     MyName = Application.ActiveWorkbook.FullName  ''路徑檔名
  8.     NewName = Left(MyName, Len(MyName) - 5)       ''去除副檔名
  9.     SavePath = ActiveWorkbook.Path                ''路徑
  10.     DDate = Format(Date, " _ yyyy-mm-dd")         ''當日日期
  11.     URL = "http://goodinfo.tw/StockInfo/EquityDistributionClassHis.asp?STOCK_ID=2330"         ''網址
  12.     Cells.Clear

  13.     Application.DisplayStatusBar = True
  14.     Application.ScreenUpdating = False
  15.     Set ie = CreateObject("internetexplorer.application") '使用此方式可以免除 "設定引用項目"
  16.     With ie
  17.         .Visible = True  'True為開啟ie, False為不開啟ie
  18.         .Navigate URL

  19.     Do While .Readystate <> 4  '等待網頁開啟
  20.         DoEvents
  21.     Loop

  22.     Application.StatusBar = "資料複製中請稍候...."
  23.         .ExecWB 6, 2    ''列印成pdf
  24.         ????????????    ''這一串要接什麼才可以自動key入檔名呢?  比方說:fileName =  xlsName &  DDate       在網路上找了很多字串,還是不會用~

  25.     End With
  26. Application.StatusBar = False
  27.    
  28.     ''ie.Quit  
  29.    
  30. End Sub
複製代碼

作者: koshi0413    時間: 2016-5-17 07:29

回復 1# koshi0413

附上相關資料,請各位高手開示一下......
[attach]24299[/attach]
    [attach]24298[/attach]
作者: koshi0413    時間: 2016-5-18 19:37

今天有在試了一個方式  SendKeys
可以存檔案下來,但key入的名字,常常跑不完全(因為要跑五個網頁,一個一個跑,跑五次,如果反覆一直按,每次存的名字要看運氣才會正確也)
  1. Sub 下載pdf()
  2. Sheets("下載用").Select
  3.    
  4. Dim xlsName, xlsNameNo, MyName, NewName, SavePath, DDate, URL As String

  5.     xlsName = ActiveWorkbook.Name                 ''檔名
  6.     xlsNameNo = Mid(xlsName, 1, 4)                ''檔名前4字元
  7.     SavePath = ActiveWorkbook.Path                ''路徑
  8.     MyName = Application.ActiveWorkbook.FullName  ''路徑檔名
  9.     NewName = Left(MyName, Len(MyName) - 5)       ''去除副檔名
  10.     DDate = Format(Date, "yyyy-mm-dd _ ")         ''當日日期

  11.    
  12.     Cells.Clear
  13.     Application.DisplayStatusBar = True
  14.     Application.ScreenUpdating = False

  15.     ''董監持股現況1
  16.     Set ie = CreateObject("internetexplorer.application") '使用此方式可以免除 "設定引用項目"
  17.     URL = "http://www.fortunengine.com.tw/stock/company/holding.cfm?scode=" & xlsNameNo    ''網址
  18.     With ie
  19.         .Visible = False 'True為開啟ie, False為不開啟ie
  20.         .Navigate URL

  21.     Do While .Busy: DoEvents: Loop
  22.     Do While .Busy: DoEvents: Loop
  23.     Do While .Readystate <> 4: DoEvents: Loop
  24.         .ExecWB 6, 2
  25.         
  26.    
  27.     Application.Wait Now + TimeValue("00:00:04")
  28.     Application.SendKeys (DDate & xlsNameNo & "_1")
  29.     ''Application.Wait Now + TimeValue("00:00:01")
  30.     Application.SendKeys "{TAB}", True
  31.     ''Application.Wait Now + TimeValue("00:00:01")
  32.     Application.SendKeys "{TAB}", True
  33.     ''Application.Wait Now + TimeValue("00:00:01")
  34.     Application.SendKeys "{TAB}", True
  35.     ''Application.Wait Now + TimeValue("00:00:01")
  36.     Application.SendKeys "{ENTER}", True
  37.     ''Application.Wait Now + TimeValue("00:00:01")
  38.     Application.SendKeys "{TAB}", True
  39.     Application.SendKeys "{ENTER}", True
  40.    
  41.     End With
  42.    
  43.     Application.StatusBar = False
  44.     ie.Quit
  45. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)