簡體   English   中英

Excel 中文本文件的自動導入/繪圖

[英]Automatic Import/Graphing of Text Files in Excel

我運行一台機器,它輸出多個文本文件,我 plot,我有一個 VBA 腳本,它可以將我想要的所有文件導入 plot 從他們自己的文件夾中並將它們放在他們自己的工作表上。 我想知道是否有一種方法可以在導入它們時自動繪制它們? 我需要為每對測試提供一個單獨的圖表。 那就是我有“測試 A-1”和“測試 A-2”,它們是相互繪制的,“測試 B-1”和“測試 B-2”在新圖表上等等。對不起,如果這令人困惑,我我對 VBA 仍然很陌生,並且會喜歡這樣的工具來讓我的生活更輕松一些。 我已經包含了我的代碼,它完成了下面的所有導入。 然后,每個文本文件(只是 xy 散點圖的數據)都有自己的表格,數據在 A 和 B 列中。提前為糟糕的格式道歉,我沒有寫!

Sub ImportTextToExcel()
'UpdatebyExtendoffice20180911
Dim xWb As Workbook
Dim xToBook As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xFiles As New Collection
Dim I As Long
Dim xIntRow As Long
Dim xFNum, xFArr As Long
Dim xStrValue As String
Dim xRg As Range
Dim xArr

Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
If xFile = "" Then
MsgBox "No files found", vbInformation
Exit Sub
End If
Do While xFile <> ""
xFiles.Add xFile, xFile
xFile = Dir()
Loop
Set xToBook = ThisWorkbook
On Error Resume Next
Application.ScreenUpdating = False
If xFiles.Count > 0 Then

For I = 1 To xFiles.Count
Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)

ActiveSheet.Name = xWb.Name

xWb.Close False
xIntRow = ActiveCell.CurrentRegion.Rows.Count
For xFNum = 1 To xIntRow
Set xRg = ActiveSheet.Range("A" & xFNum)
xArr = Split(xRg.Text, " ")
If UBound(xArr) > 0 Then
For xFArr = 0 To UBound(xArr)
If xArr(xFArr) <> "" Then
xRg.Value = xArr(xFArr)
Set xRg = xRg.Offset(ColumnOffset:=1)
End If
Next
End If
Next
Next
End If
Application.ScreenUpdating = True
End Sub
Option Explicit

Sub ImportTextToExcel()
    'UpdatebyExtendoffice20180911
    Dim xWb As Workbook, xToBook As Workbook, ws As Worksheet
    Dim xFile As String, xStrPath As String, xStrValue As String
    Dim xRg As Range, cht As Chart
    Dim xFiles As New Collection
    Dim i As Long
    
    ' choose folder
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Title = "Select a folder"
       If .Show = -1 Then
           xStrPath = .SelectedItems(1)
       End If
    End With
    If xStrPath = "" Then
        Exit Sub
    ElseIf Right(xStrPath, 1) <> "\" Then
        xStrPath = xStrPath & "\"
    End If

    ' build collection of text files
    xFile = Dir(xStrPath & "*.txt")
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    If xFiles.Count = 0 Then
        MsgBox "No files found", vbCritical
        Exit Sub
    End If

    ' import data
    Set xToBook = ThisWorkbook
    Application.ScreenUpdating = False
    For i = 1 To xFiles.Count
        
        ' import data into new sheet
        Set xWb = Workbooks.Open(xStrPath & xFiles.Item(i))
        xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
        Set ws = ActiveSheet
        ws.Name = xWb.Name
        xWb.Close False

        ' split on space
        Set xRg = ws.Range("A1")
        xRg.CurrentRegion.TextToColumns Destination:=xRg.Cells(1, 1), _
                          DataType:=xlDelimited, _
                          ConsecutiveDelimiter:=True, _
                          Space:=True, FieldInfo:=Array(Array(1, 1), Array(2, 1))
        
        ' create chart
        Set cht = ws.Shapes.AddChart.Chart
        With cht
            .ChartType = xlXYScatter
            .SetSourceData Source:=xRg.CurrentRegion
        End With
        
    Next
    Application.ScreenUpdating = True
    MsgBox xFiles.Count & " files imported", vbInformation
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM