需要改进代码

Code Improvement Needed

这是我所掌握的,但是它现在只是多次复制 active.sheet 而不是循环。

我想要实现的想法是使用宏 运行 并将每个工作表转换为 .csv。该 .csv 的文件名将是由另一个宏决定的工作表名称,而不是流程中较早的 运行s。

如我之前所说,关于如何绕过的任何想法。我对代码还很陌生,所以我才问这个问题。

子Export_Sub_Xpath() ' ' Export_Sub_Xpath 宏 '

    Dim i As Integer
    Dim WS_Count As Integer
    Dim ws As Worksheet

    WS_Count = ActiveWorkbook.Worksheets.Count
    For i = 1 To WS_Count



    Set ws = ThisWorkbook.Worksheets(i)
    PathName = "" & ActiveWorkbook.Path & "\" & ws.Name & ".csv"
    Columns("A:B").Select
    Range("B3000").Activate
    Selection.Copy
    PathName = "" & ActiveWorkbook.Path & "\" & ws.Name & ".csv"
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    'ActiveWorkbook.SaveAs PathName = "" & ActiveWorkbook.Path & "\" & ws.Name & ".csv"
    ActiveWorkbook.SaveAs Filename:=PathName, _
        FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Close

Next i

End Sub

您在复制和保存之前忘记激活每个 sheet。试试这个:

Sub Export_Sub_Xpath() ' ' Export_Sub_Xpath Macro '
    Dim i As Integer
    Dim WS_Count As Integer
    Dim ws As Worksheet

    WS_Count = ThisWorkbook.Worksheets.Count

    For i = 1 To WS_Count
            Set ws = ThisWorkbook.Worksheets(i)
            PathName = "" & ThisWorkbook.Path & "\" & ws.Name & ".csv"
            ThisWorkbook.Worksheets(i).Activate  ' You forgeot to Activate Each Sheet before saving
            Columns("A:B").Select
            Range("B3000").Activate                 
            Selection.Copy
            Workbooks.Add
            ActiveSheet.Paste
            Application.CutCopyMode = False
            ActiveWorkbook.SaveAs Filename:=PathName, _
                FileFormat:=xlCSV, CreateBackup:=False
            ActiveWorkbook.Close

Next i

End Sub