Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 打开并读取一个文本文件,然后用分隔符复制该文件的内容_Vba_Excel - Fatal编程技术网

Vba 打开并读取一个文本文件,然后用分隔符复制该文件的内容

Vba 打开并读取一个文本文件,然后用分隔符复制该文件的内容,vba,excel,Vba,Excel,我在excel VBA中有一个代码,它打开并读取一个文本文件,然后复制文件的内容,但不粘贴分隔符 我想复制我打开并阅读的文件的内容,然后将该文件的内容粘贴到另一个工作簿中 下面是我目前掌握的代码 Sub ImportTextFile() Dim SheetName As String Dim TMPWorkBook As Workbook Dim FilePath As String Dim TxtFilePath As String Dim TxtFileName As String Se

我在excel VBA中有一个代码,它打开并读取一个文本文件,然后复制文件的内容,但不粘贴分隔符

我想复制我打开并阅读的文件的内容,然后将该文件的内容粘贴到另一个工作簿中

下面是我目前掌握的代码

Sub ImportTextFile()

Dim SheetName As String
Dim TMPWorkBook As Workbook
Dim FilePath As String
Dim TxtFilePath As String
Dim TxtFileName As String

Set WB = ThisWorkbook

path = "C:\Users\"

SheetName = "Test_Result"
TxtFileName = path & "244.txt"

Workbooks.OpenText Filename:= _
    TxtFileName _
    , Origin:=437


Set TMPWorkBook = ActiveWorkbook
TMPWorkBook.Sheets(1).Select
Cells.Select
Selection.Copy

'ResultWB.Activate
Windows("Sample.xlsb").Activate

'ResultWB.Sheets(SheetName).Select
Sheets("Data").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Cells.Select
Cells.EntireColumn.AutoFit
ActiveSheet.Range("A1").Select
TMPWorkBook.Close savechanges:=False


我建议您导入带分隔符的数据,而不是打开和复制/粘贴内容,就像您通过菜单选项“data=>From Text”一样。 根据您发布的示例,使用空格作为分隔符可能会成功。 以下是一些应该让您开始的代码:

Dim wb As Workbook, sh As Worksheet
Dim path As String
Dim qt As QueryTable

path = "M:\SSC TQM\Projects\_CC\BPLG\ETAPAI_20170724.txt"
Set wb = Workbooks("TEMPLATE BPLG.xlsb")
Set sh = wb.Worksheets("Data")

'Clear existing Query Tables

For Each qt In sh.QueryTables
    qt.Delete
Next qt


With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & path, Destination:=Range( _
    "$A$1"))
    .Name = "Data"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 850
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = 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, 1, 1, 1, 1, 1, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With
sh.QueryTables(1).Delete

什么分隔符文本文件有?逗号还是别的什么?你得到的结果是什么?样品在下面,没有测力仪。00001105656 240112 000000000 DMO SPA 237679 1 620258901 Fachat制作201703072070719聊天制作0 00000317441400000014284000000000000如果没有分隔符,excel将如何解析您的数据?离开Excel。您将如何解析数据?这是不可能的,因为excel不知道在哪里破折号。