有没有会VBA的,下面这段代码运行到给
filePaths赋值时报错:错误的参数号或无效的属性赋值,这是为什么?
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
变量将被正确地赋予选择的文件路径,不再报错"错误的参数号或无效的属性赋值"。