【发布时间】:2016-10-31 17:24:43
【问题描述】:
我是 VBA 新手。在这里发布我的问题之前,我花了将近 3 天的时间上网。
我有 300 多个文本文件(使用 OCR 从 PDF 转换的文本),来自文本文件。我需要获取所有包含“字母”和“数字”的单词(例如 KT315A、KT-315-a 等)以及源参考(txt 文件名)。
我需要的是
1.添加“智能过滤器”,仅复制包含
的单词
“字母”和“数字”
将复制的数据粘贴到 A 列
将参考文件名添加到 B 列
我发现下面的代码可以将文本文件中的所有数据复制到 Excel 电子表格中。
文本文件看起来像
“从 252A-552A 到 ddddd, ,,, @,@,rrrr, 22 , ....kt3443 , fff,,,etc 的行”
xls 的最终结果应该是
一个 |乙
252A-552A |文件 1
kt3443 |文件1
Option Explicit
Const sPath = "C:\outp\" 'remember end backslash
Const delim = "," 'comma delimited text file - EDIT
'Const delim = vbTab 'for TAB delimited text files
Sub ImportMultipleTextFiles()
Dim wb As Workbook
Dim sFile As String
Dim inputRow As Long
RefreshSheet
On Error Resume Next
sFile = Dir(sPath & "*.txt")
Do Until sFile = ""
inputRow = Sheets("Temp").Range("A" & Rows.Count).End(xlUp).Row + 1
'open the text file
'format=6 denotes a text file
Set wb = Workbooks.Open(Filename:=sPath & sFile, _
Format:=6, _
Delimiter:=delim)
'copy and paste
wb.Sheets(1).Range("A1").CurrentRegion.Copy _
Destination:=ThisWorkbook.Sheets("Temp").Range("A" & inputRow)
wb.Close SaveChanges:=False
'get next text file
sFile = Dir()
Loop
Set wb = Nothing
End Sub
Sub RefreshSheet()
'delete old sheet and add a new one
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Temp").Delete
Application.DisplayAlerts = True
Worksheets.Add
ActiveSheet.Name = "Temp"
On Error GoTo 0
End Sub
谢谢!
【问题讨论】:
-
那么,您发布的代码正在运行,并将文本放入 Excel 中?您现在要问的是,如何在 Excel 中解析这些数字?说另一种看待这一点的方法是否正确,对于由空格确定的字符串的每个“部分”,如果该部分只有数字或只有字母,您想从单元格中删除它。您只想要数字和字母混合的部分吗?
-
是的,没错!加上 B 列中的源引用(文件名。)
-
您的示例
252A-552A除了数字和字母外还包含一个连字符。除了数字和字母之外,您还想添加其他字符吗? -
@BruceWayne 我注意到他的示例中的
kt3443前面没有space
标签: excel vba parsing text copy