用打开的文件对话框导入txt文件并将它们分解成单元格

我知道我在做一个错误后行: If intChoice <> 0 Then
有人能帮我纠正吗?

 Private Sub CommandButton1_Click() Dim intChoice As Integer 'Select the start folder Application.FileDialog(msoFileDialogOpen).InitialFileName = "I:\Dunnings" 'make the file dialog visible to the user intChoice = Application.FileDialog(msoFileDialogOpen).Show 'determine what choice the user made If intChoice <> 0 Then Workbooks.OpenText.Filename:= intChoice, Origin:=xlMSDOS, StartRow:=23, DataType:=xlFixedWidth, FieldInfo:= _ Array(Array(0, 1), Array(6, 2), Array(23, 1), Array(30, 2), Array(63, 2), Array(68, 1), _ Array(77, 4), Array(88, 4), Array(101, 1), Array(117, 1)), TrailingMinusNumbers:= _ True NewPath = Mid(ThisWorkbook.FullName, 1, _ Len(ThisWorkbook.FullName) - Len(ThisWorkbook.Name)) & "\" & _ "Dunnings - " & Format(Date, "dd-mm-yyyy") & ".xlsm" ThisWorkbook.SaveAs (NewPath) End If End Sub 

IntChoice是整数。
文件名参数需要string。 像这样的东西:

 With Application.FileDialog(msoFileDialogOpen) .InitialFileName = "I:\Dunnings" .Filters.Clear .title = "Your Title" If Not .Show Then MsgBox "No file selected.": Exit Sub End If Workbooks.OpenText .SelectedItems(1) 'and the rest of your code. End With 
 Private Sub CommandButton1_Click() With Application.FileDialog(msoFileDialogOpen) .InitialFileName = "I:\" .Filters.Clear .Title = "Your Title" If Not .Show Then MsgBox "No file selected.": Exit Sub End If Workbooks.OpenText .SelectedItems(1), Origin:=xlMSDOS, StartRow:=23, _ DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(6, 2), _ Array(23, 1), Array(30, 2), Array(63, 2), Array(68, 1), _ Array(77, 4), Array(88, 4), Array(101, 1), Array(117, 1)), _ TrailingMinusNumbers:=True NewPath = Mid(ThisWorkbook.FullName, 1, _ Len(ThisWorkbook.FullName) - Len(ThisWorkbook.Name)) & "\" & _ "Dunnings - " & Format(Date, "dd-mm-yyyy") & ".xlsm" ThisWorkbook.SaveAs (NewPath) End With End Sub 

基本上,其余的代码可以使用RecordMacro录制,然后将结果代码复制到您的VB代码。