gpt4 book ai didi

excel - 将文本文件导入 Excel 工作表

转载 作者:行者123 更新时间:2023-12-01 17:29:42 26 4
gpt4 key购买 nike

我正在编写一个 VBA 代码,该代码应该删除选定 Excel 工作表上的数据,打开一个文本文件选择对话框,然后将该文本文件中的数据导入到我已删除的同一个工作表中数据来自.到目前为止,我只能将文本文件打开到新工作簿中,但无法将其打开到已删除数据的同一张工作表中。

这是我到目前为止所得到的,感谢您的帮助:

Dim Filt As String
Dim FilterIndex As Integer
Dim Title As String
Dim FileName As Variant

Filt = "Cst Files (*.prn),*.prn"
Title = "Select a cst File to Import"
FileName = Application.GetOpenFilename(FileFilter:=Filt, Title:=Title)

If FileName = False Then
MsgBox "No File Was Selected"
Exit Sub
End If

With Application.ActiveSheet
Cells.Select
Selection.QueryTable.Delete
Selection.ClearContents
End With

Workbooks.Open FileName

最佳答案

有多种方法可以将文本文件导入到当前工作表。这里有三种(包括您上面使用的方法)

  1. 使用查询表
  2. 打开内存中的文本文件,然后写入当前工作表,最后根据需要应用“文本到列”。
  3. 如果您想使用当前使用的方法,则在新工作簿中打开文本文件后,只需使用 Cells.Copy 将其复制到当前工作表

使用查询表

这是我录制的一个简单的宏。请修改它以满足您的需要。

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

关于excel - 将文本文件导入 Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com