2016-11-03 2 views
0

다운로드를하고 매크로를 실행하려고했습니다. 나는 VB 코드를 끝내고 잘 돌아갔다. 그런 다음 매크로를 일부 서브 시스템에 넣고 매크로로 실행하려고 시도했다. 오류가 발생합니다.컴파일 오류는 매크로 단어로만 vbs입니까?

Compile error, Syntax Error: objXMLHTTP.send()

매크로로 만 오류가 발생합니다. 여기

는 전체 코드입니다 :

Sub macro() 
    Const ADTYPEBINARY = 1 
    Const ADSAVECREATEOVERWRITE = 2 

    Dim xHttp 
    Dim bStrm 
    Dim filename 
    Dim fso 

    Set fso = CreateObject("Scripting.FileSystemObject") 
    Dim tempfolder 
    Const TemporaryFolder = 2 
    Set tempfolder = fso.GetSpecialFolder(TemporaryFolder) 
    strFileURL = "ftp://username:[email protected]/putty.exe" 
    strHDLocation = tempfolder & "/putty.exe" 

    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") 

    objXMLHTTP.Open "GET", strFileURL, False 

    objXMLHTTP.send() 

    If objXMLHTTP.Status = 200 Then 
    Set objADOStream = CreateObject("ADODB.Stream") 
    objADOStream.Open 
    objADOStream.Type = 1 'adTypeBinary 
    Else 
    Set objADOStream = CreateObject("ADODB.Stream") 
    objADOStream.Open 
    objADOStream.Type = 1 'adTypeBinary 

    objADOStream.Write objXMLHTTP.ResponseBody 
    objADOStream.Position = 0 'Set the stream position to the start 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation 
    Set objFSO = Nothing 

    objADOStream.SaveToFile strHDLocation 
    objADOStream.Close 
    Set objADOStream = Nothing 
    End If 

    Set objXMLHTTP = Nothing 

    Set objShell = WScript.CreateObject("WScript.Shell") 
    objShell.Run "cmd /c " & tempfolder & "/putty.exe", 0, True 
End Sub 
+1

당신은 (구글)을 확인 했 그 기능'objXMLHTTP.send()' MS-Word에서 지원됩니까? VBSCRIPT는 VBA와 같지 않으며 각 Office 응용 프로그램에 사용되는 라이브러리에는 특정 기능이 있습니다 (예 : PowerPoint 매크로에서 스프레드 시트를 참조하여 어떤 일이 발생하는지 확인). – FDavidov

+0

아니요, 지원되는 유사한 기능을 찾아 보겠습니다. –

+0

오류 로그를 제공 할 수 있습니까? –

답변

0

덕분에 나는이 그것을 변경하고 그것을 잘 작동합니다 :

Sub book() 
    Set objShell = CreateObject("Wscript.Shell") 
    Dim fso 

    Set fso = CreateObject("Scripting.FileSystemObject") 
    Dim tempfolder 
    Const TemporaryFolder = 2 
    Set tempfolder = fso.GetSpecialFolder(TemporaryFolder) 

    Dim xHttp: Set xHttp = CreateObject("Microsoft.XMLHTTP") 
    Dim bStrm: Set bStrm = CreateObject("Adodb.Stream") 
    xHttp.Open "GET", "https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe", False 
    xHttp.Send 

    With bStrm 
     .Type = 1 '//binary 
     .Open 
     .Write xHttp.responseBody 
     .SaveTofile tempfolder & "/putty.exe", 2 '//overwrite 
    End With 

    objShell.Run "cmd /c " & tempfolder & "/putty.exe", 0, True 
End Sub 
+0

내 의견이 도움이 되었다면, 투표를 고려해보십시오 (나는 _virtual 보수 _ :-)를 얻는 것을 즐긴다). – FDavidov