Excel VBA导入文本文件,其中每个单词都有自己的行
我正在尝试创建一个宏,将.txt文件导入excel并填写a列。文本文件中的每个单词都应该有自己的行。到目前为止,我有一些代码,允许用户选择一个.txt文件,读取它,并将每个单词写入自己的单元格中。但是,它不会用每个单词开始新的一行。非常感谢您的帮助。谢谢 我从简单的文本文件开始,不过如果知道在导入时如何编辑所有标点符号也会很好。(见下面两个例子) 例1:“快速棕色Excel VBA导入文本文件,其中每个单词都有自己的行,excel,vba,Excel,Vba,我正在尝试创建一个宏,将.txt文件导入excel并填写a列。文本文件中的每个单词都应该有自己的行。到目前为止,我有一些代码,允许用户选择一个.txt文件,读取它,并将每个单词写入自己的单元格中。但是,它不会用每个单词开始新的一行。非常感谢您的帮助。谢谢 我从简单的文本文件开始,不过如果知道在导入时如何编辑所有标点符号也会很好。(见下面两个例子) 例1:“快速棕色 狐狸跳了过去 懒惰的月亮” 例2:“快报。 棕色狐狸, 跳过了那条河? “懒月亮” 我的代码 Sub TextImport() Di
狐狸跳了过去
懒惰的月亮” 例2:“快报。
棕色狐狸,
跳过了那条河?
“懒月亮” 我的代码
Sub TextImport()
Dim fileToOpen As String
Worksheets("Dictionary").Activate
Application.ScreenUpdating = False
Range("a:z").Delete
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "Select a file to import")
If fileToOpen <> "" Then
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& fileToOpen, Destination:=Range("A1"))
.Name = "mytext"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileSpaceDelimiter = True
.Refresh BackgroundQuery:=False
End With
End If
Application.ScreenUpdating = False
End Sub
子文本导入()
Dim fileToOpen As String
工作表(“字典”)。激活
Application.ScreenUpdating=False
范围(“a:z”)。删除
fileToOpen=Application.GetOpenFilename(“文本文件(*.txt),*.txt”,“选择要导入的文件”)
如果文件打开“”,则
使用ActiveSheet.QueryTables.Add(连接:=“文本;”_
&fileToOpen,目标:=范围(“A1”))
.Name=“mytext”
.FieldNames=True
.rowNumber=False
.FillAdjacentFormulas=False
.TextFileStartRow=1
.TextFileParseType=xlDelimited
.TextFileTextQualifier=xlTextQualifierDoubleQuote
.TextFileSpaceDelimiter=True
.Refresh BackgroundQuery:=False
以
如果结束
Application.ScreenUpdating=False
端接头
如果您能显示文本文件中的前10行左右,这会有所帮助。很难提出其他建议。对不起,蒂姆。我已经编辑了我的原始问题。我导入的文本文件非常基本,只包含文字,没有事实或数字。
Sub ListWords()
Dim re As Object
Dim s As String, matches As Object, match As Object
Dim rngList As Range
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "([a-z]+)"
re.ignorecase = True
re.Global = True
Set rngList = ThisWorkbook.Sheets("Sheet1").Range("A1")
s = GetContent("C:\blahblah\tmp.txt")
Set matches = re.Execute(s)
If Not matches Is Nothing Then
For Each match In matches
rngList.Value = match.Value
Set rngList = rngList.Offset(1, 0)
Next match
End If
End Sub
Function GetContent(f As String)
GetContent = CreateObject("scripting.filesystemobject"). _
opentextfile(f, 1).readall()
End Function