使用打开文件对话框导入 txt 文件并将它们分解为单元格
Import txt file with open file dialog box and break them into cells
我知道我在行后犯了一个错误:
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
是整数。
文件名 参数需要字符串。像这样:
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 代码中。
我知道我在行后犯了一个错误:
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
是整数。
文件名 参数需要字符串。像这样:
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 代码中。