VBA报错,错误的参数号或无效的属性赋值

有没有会VBA的,下面这段代码运行到给
filePaths赋值时报错:错误的参数号或无效的属性赋值,这是为什么?

img

selecteditems是多个项,filepaths是单一字符串,不能直接赋值
你试试看filename代替selecteditems

【以下回答由 GPT 生成】

问题的根本原因是filePaths变量的类型不匹配。在代码中,filePaths是一个变量,用于存储选择的文件路径。然而,在给filePaths赋值时,它被声明为了Variant类型,而不是String类型或者String()类型,这导致了参数号或属性赋值错误。

解决这个问题,需要将filePaths的类型更改为String(),以便正确地存储选择的文件路径。

在原始代码中,将Dim filePaths As Variant改为Dim filePaths() As String。这样就将filePaths声明为String()类型的变量。

以下是修改后的代码:

Option Explicit
Sub ImportTXTFiles()
    Dim filePaths() As String
    Dim ws As Worksheet
    Dim fileName As String
    Dim fileContent As String
    Dim lineArray() As String
    Dim i As Integer

    ' 弹窗选择多个TXT文件
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "请选择要导入的TXT文件"
        .Filters.Clear
        .Filters.Add "TXT文件", "*.txt"
        .AllowMultiSelect = True
        .Show
        If .SelectedItems.Count > 0 Then
            ReDim filePaths(1 To .SelectedItems.Count)
            For i = 1 To .SelectedItems.Count
                filePaths(i) = .SelectedItems(i)
            Next i
        Else
            Exit Sub
        End If
    End With

    ' 遍历每个选择的文件
    For i = LBound(filePaths) To UBound(filePaths)
        ' 获取文件名(不包含扩展名)
        fileName = Left(Dir(filePaths(i)), Len(Dir(filePaths(i))) - 4)
        ' 读取文件内容
        Open filePaths(i) For Input As #1
        fileContent = Input$(LOF(1), 1)
        Close #1
        ' 对文件内容进行处理(示例)
        lineArray = Split(fileContent, vbCrLf)
        ' 执行其他操作...
    Next i
End Sub

这样,filePaths变量将被正确地赋予选择的文件路径,不再报错"错误的参数号或无效的属性赋值"。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^