2013-03-28 64 views
1

請嘗試下面的代碼,所做的是從網頁表面下載一些數據,但我需要它自動工作,並且在打開Excel,流行時出現問題窗口。有沒有辦法擺脫它自動按下ENABLE?自動關閉提醒/彈出窗口VBA

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _ 
(ByVal pCaller As Long, _ 
ByVal szURL As String, _ 
ByVal szFileName As String, _ 
ByVal dwReserved As Long, _ 
ByVal lpfnCB As Long) As Long 

Sub DownPDF() 
' This macro downloads the pdf file from webpage 
' Need to download MSXML2 and MSHTML parsers and install 
Application.OnTime Now + TimeValue("00:01:10"), "DownPDF" 
Dim sUrl As String 
Dim xHttp As MSXML2.XMLHTTP 
Dim hDoc As MSHTML.HTMLDocument 
Dim hAnchor As MSHTML.HTMLAnchorElement 
Dim Ret As Long 
Dim sPath As String 
Dim i As Long 

sPath = "C:\Documents and Settings\ee28118\Desktop\Ordine\" 
sUrl = "http://cetatenie.just.ro/wp-content/uploads/" 

'Get the directory listing 
Set xHttp = New MSXML2.XMLHTTP 
xHttp.Open "GET", sUrl 
xHttp.send 

'Wait for the page to load 
Do Until xHttp.readyState = 4 
    DoEvents 
Loop 

'Put the page in an HTML document 
Set hDoc = New MSHTML.HTMLDocument 
hDoc.body.innerHTML = xHttp.responseText 

'Loop through the hyperlinks on the directory listing 
For i = 0 To hDoc.getElementsByTagName("a").Length - 1 
    Set hAnchor = hDoc.getElementsByTagName("a").Item(i) 

    'test the pathname to see if it matches your pattern 
    If hAnchor.pathname Like "Ordin-*.2013.pdf" Then 
     Ret = URLDownloadToFile(0, sUrl & hAnchor.pathname, sPath & hAnchor.pathname, 0, 0) 

     If Ret = 0 Then 
      Debug.Print sUrl & hAnchor.pathname & " downloaded to " & sPath 
     Else 
      Debug.Print sUrl & hAnchor.pathname & " not downloaded" 
     End If 
    End If 
Next i 

End Sub 
+0

如果這對啓用宏,你將不得不將Excel的宏安全級別設置爲低(所以它不關心)或非常高(所以它甚至不會給你選項) –

+0

其中是excel msgbox或alert - 我不' t看到任何警報 –

+0

這是什麼與代碼,但一個安全,你在下面指出... – maximladus

回答

1

嘗試設置您的Excel安全級別非常高或低的桌面上,然後Exel公司不會保護你免受惡意代碼,當您打開工作簿(但良好的防病毒軟件會做吧,可能運行!)

  • 非常高意味着它不會問你
  • 低意味着它不會問你。

HTH

菲利普

+0

它是在Excel宏的非常低... – maximladus

+0

所以當你得到錯誤?我運行了代碼,沒有打開工作簿,因此沒有「啓用」對話框 –

+0

,因此這對您的代碼沒有任何影響,但是當您打開運行上述代碼的Excel工作簿時,您會收到標準安全消息? –

0

爲什麼它要求你啓用宏是因爲宏實際上可以傷害到你的電腦的原因。這是一個安全問題,您無法通過VBA自動覆蓋該功能。

一個人有手動去到Excel: 「信任中心 - >信任中心設置 - >宏設置 - >啓用所有宏(不推薦,潛在危險代碼可以運行)」

+0

什麼是信任中心?你的意思是Tools-> Optoins-> Security? – maximladus

+0

哦..你正在使用2007或更少?是的在安全..你需要將它設置爲低,你會沒事 –

+0

或者添加一個數字簽名的VBA項目(如果允許公司政策等) –