分裂方法,那麼您需要明確指定您提供哪些參數是供應:
Workbook.OpenText語法(從MSDN)
expression.OpenText(Filename, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)
expression A variable that represents a Workbooks object.
在代碼中,你已經錯過了一些爭論,但是編譯器將假定你已經按預期的順序提供的參數對於該方法除非您指定其中您傳遞的參數。例如:
Workbooks.OpenText Filename:=fuullfilepath, Origin:=xlMSDOS, DataType:=xlDelimited, Other:=True, OtherChar:="!"
而且,可能不是你所希望看到的答案,但我寫了一個UDF來完成類似的事情,而不使用.OpenText()
方法前一陣子:
Function MM_OpenTextFile(vPath As String, delim As String) As Variant
Dim FF As Integer
Dim lineArray As Variant
Dim temp As String
Dim arrayList As Object
Set arrayList = CreateObject("System.Collections.ArrayList")
FF = FreeFile
Open vPath For Input As #FF
While Not EOF(FF)
Line Input #FF, temp
lineArray = Split(temp, delim)
arrayList.Add lineArray
Erase lineArray
Wend
Close #FF
MM_OpenTextFile = WorksheetFunction.Transpose(WorksheetFunction.Transpose(arrayList.ToArray()))
arrayList.Clear
Set arrayList = Nothing
End Function
下面是你將如何使用它的一個例子:
Sub Foo()
Dim ar As Variant '// Must be a Variant to work
'// Change to a file and delimiter of your choosing...
ar = MM_OpenTextFile("C:\Users\Macro Man\SomeFile.txt", "!")
With Range("A1").Resize(UBound(ar, 1), UBound(ar, 2))
.NumberFormat = "@" '// Change format to "text"
.Value = ar '// insert array values
End With
End Sub
哦,這是輝煌,簡潔和詳細。非常感謝你,這讓我生氣了! –