非常感谢提前我有一个 .txt 文件,其中包含需要提取并放入 Excel 中相应列的数据。我对 VBA 编码非常陌生,并且尝试了很多,但是在完成这项工作时遇到了困难......下面显示了我到目前为止的代码,但是在运行时,它的工作方式有所不同。实际上数据需要放在各自的字段中作为excel中的样本。在 Excel 文件中,我已经将数据保存为如何获取并填充到相应的标题列中。
类型;帐号:银行参考;受益人名称;日期;收益帐号; Bene IFSC; BENE BANK NAME;参考; Bene Mail ID IMPS; 45605104698; 45605104698; 60062000057200; ABCDEF; ABCDEF; 12122016; 0000000001.00; 0000000001.00; 10304060176; STREK0002022018; STERK0002018; STERK0002018; STERTBANK; STEAST BANK;印度 ;5110845 ;abce@gmail.com ;
我用于提取上述数据并将其放入各自列中的代码如下:-
Option Explicit
Sub importTXT()
Dim r As Range, myfile As Variant
Dim qt As QueryTable, i As Integer
Dim del As Range
'where myfile needs to select manually
myfile = Application.GetOpenFilename("All Files (*.*), **.*", _
, "Select TXT file", , False)
If myfile = False Then Exit Sub
'elseif its fixed
'myfile = "D:\sample student file"
Application.ScreenUpdating = False
With ActiveSheet
.Range("E7").CurrentRegion.Cells.Clear
With .QueryTables.Add(Connection:="TEXT;" & myfile, Destination:=.Range("$E$7"))
.Name = "MST"
.TextFilePlatform = 437
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileTabDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
'delete query tables if found any.
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
'Delete the Data Connections
If .Parent.Connections.Count > 0 Then
For i = 1 To .Parent.Connections.Count
.Parent.Connections.Item(i).Delete
Next i
End If
For Each r In .Range("E7:X" & .UsedRange.Rows.Count)
If InStr(r, "Title = ") > 0 Then
r.Offset(, 1) = Mid(r.Value, InStr(r, " ") + 8, InStrRev(r.Value, " "))
r.Offset(, 2) = Mid(r.Value, InStrRev(r.Value, " ") + 2, Len(r.Value) - InStrRev(r.Value, " ") - 2)
Else
If del Is Nothing Then
Set del = r
Else
Set del = Union(del, r)
End If
End If
Next
End With
Application.ScreenUpdating = False
End Sub
需要插入数据的示例excel文件如下:-