【问题标题】:VBA Excel: wrong number of arguments or invalid property assignment on call functionVBA Excel:调用函数的参数数量错误或属性分配无效
【发布时间】:2018-09-14 17:14:07
【问题描述】:

下面的代码出现编译错误。也许有人可以帮助我。

“参数数量错误或属性分配无效” 对于
调用 Alternative(folderspec, f1.Name)

由于某种原因,它曾经在一天前工作。

Sub WM()
Const folderspec = "C:\Users\xxx\Desktop\xxx\wm"
Dim fs, f, f1, fc

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 In fc
        If UCase(Right(f1, 3)) = "XLS" Then 'Excel File gefunden
        Call Alternative(folderspec, f1.Name)

        End If
    Next

End Sub

Sub Alternative()

Active.Workbook.UsedRange.Replace "Anteilklasse ", "", xlPart

End Sub

【问题讨论】:

    标签: excel vba arguments


    【解决方案1】:

    错误“参数数量错误或属性分配无效”表示您在 Sub Alternative 中需要 2 个参数,因为您使用 Call 传递它们:

    Sub Alternative(folderspec As String, f1Name As String)    
        ActiveWorkbook.UsedRange.Replace "Anteilklasse ", "", xlPart    
    End Sub
    
    • 现在编译错误应该没问题了。
    • Active 和 Workbook 之间不应有一个点 - ActiveWorkbook 是正确的;

    【讨论】:

    • @FunThomas - 可能是用户正在写minimal reproducible example 并决定删除大约 20 行不相关的代码,其中使用了参数:)
    • 感谢您的快速回复。我尝试在特定文件夹中打开几个 .xls 文件,然后“子替代”应该编辑这些文件。我想我需要这些参数来打开文件。
    猜你喜欢
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多