返回列表 上一主題 發帖

[發問] VBA程式 開啟一個相同檔名不同檔案

回復 3# 癡肥羔羊

或是說當開啟相同名稱時,使他中斷迴圈進行下一個Run的巨集,不知是否可行??

TOP

回復 2# samwang


不好意思說明的不清楚,目前是想開兩個相同檔案但不同副檔名CSV與TXT,然後再將TXT裡面的資料複製在CSV檔,然後另存檔案在進行輪迴。
目前資料處理到另存檔案已處理好,但卡在第一關開啟檔案的部分,原因是當資料夾裡有第二個excel檔以上時會同時一起開下去

以下是所有的程式碼:
Sub A開啟SPI_TXT()

    Dim lrow As Long
    Dim mFile As String
    Dim Filename As String
   
    If Len(Dir(ThisWorkbook.Path & "\TEST", vbDirectory)) = 0 Then
    MkDir ThisWorkbook.Path & "\TEST"
    End If
   
    mFile = Dir(ThisWorkbook.Path & "\csv檔\" & "*.csv")
    Do While mFile <> ""
    Workbooks.Open Filename:=ThisWorkbook.Path & "\csv檔\" & mFile
    mFile = Dir()
   
    mFile = Dir(ThisWorkbook.Path & "\TXT檔\" & "*.txt")
    Do While mFile <> ""
    Workbooks.Open Filename:=ThisWorkbook.Path & "\TXT檔\" & mFile
    mFile = Dir()
   
    Loop
    Loop
   
    Run "TXT複製至CSV"
   
End Sub

Sub TXT複製至CSV()

    Workbooks(2).Activate
    Workbooks(2).Worksheets.Add Before:=Sheets(Sheets.Count)
    '活頁2(CSV)新增工作表
   
    For i = 1 To Sheets.Count
    Sheets(i).Name = "Sheet" & i
    Next
   
    Workbooks(3).Activate
    Columns("A:A").Select
    Selection.Copy
    Workbooks(2).Activate
    Sheets("Sheet1").Select
    ActiveSheet.Paste
    '將活頁3(TXT)資料複製至活頁2(CSV)
   
    Application.CutCopyMode = False
    Workbooks(3).Close
   
    Run "另存TEST檔"
   
End Sub
Sub 另存TEST檔()

    Filename = ActiveWorkbook.Name
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\TEST\" & Filename, _
    FileFormat:=xlCSV, CreateBackup:=False
    Application.DisplayAlerts = True
    Application.WindowState = xlNormal
    '另存TEST
   
    ActiveWindow.Close SaveChanges:=False
   
End Sub

附件檔案可以試跑,再麻煩幫我看看....謝謝

Desktop.zip (20.45 KB)

試跑巨集

TOP

回復 1# 癡肥羔羊


看不太懂您的需求為何?可以上傳附件和需求結果,謝謝
將資料處理後另存一個新檔案>> 資料怎麼處理?

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題