3 回答
TA贡献1846条经验 获得超7个赞
您可以通过多种方法将文本文件导入当前工作表。这里有三个(包括你上面使用的方法)
使用QueryTable
打开内存中的文本文件,然后写入当前工作表,最后根据需要应用Text To Columns。
如果要在新工作簿中打开文本文件后使用当前使用的方法,只需将其复制到当前工作表中 Cells.Copy
使用QueryTable
这是我记录的一个简单的宏。请根据您的需要进行修改。
Sub Sample()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Sample.txt", Destination:=Range("$A$1") _
)
.Name = "Sample"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
在内存中打开文本文件
Sub Sample()
Dim MyData As String, strData() As String
Open "C:\Sample.txt" For Binary As #1
MyData = Space$(LOF(1))
Get #1, , MyData
Close #1
strData() = Split(MyData, vbCrLf)
End Sub
获得阵列中的数据后,可以将其导出到当前工作表。
使用您已在使用的方法
Sub Sample()
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet
Set wbI = ThisWorkbook
Set wsI = wbI.Sheets("Sheet1") '<~~ Sheet where you want to import
Set wbO = Workbooks.Open("C:\Sample.txt")
wbO.Sheets(1).Cells.Copy wsI.Cells
wbO.Close SaveChanges:=False
End Sub
跟进
您可以使用它Application.GetOpenFilename来选择相关文件。例如...
Sub Sample()
Dim Ret
Ret = Application.GetOpenFilename("Prn Files (*.prn), *.prn")
If Ret <> False Then
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Ret, Destination:=Range("$A$1"))
'~~> Rest of the code
End With
End If
End Sub
TA贡献1853条经验 获得超6个赞
你可以写.WorkbookConnection.Delete .Refresh BackgroundQuery:= False这将删除文本文件外部连接。
TA贡献1765条经验 获得超5个赞
我认为我对这个问题的回答是你想要做的最简单的解决方案:
选择文件中第一行文本所在的单元格。
使用Data/ Get External Data/ From File对话框选择要导入的文本文件。
根据需要格式化导入的文本。
在Import Data打开的对话框中,单击Properties...
取消选中此Prompt for file name on refresh框。
只要外部文件发生变化,请单击Data/ Get External Data/ Refresh All按钮。
注意:在您的情况下,您可能应该跳过步骤#5。
- 3 回答
- 0 关注
- 1051 浏览
相关问题推荐
添加回答
举报