【问题标题】:Excel Maco: How to use a variable filenameExcel 宏:如何使用变量文件名
【发布时间】:2013-10-11 18:12:52
【问题描述】:

我创建了一个宏,但它从我创建它时所在的文件中插入了文件名。我想将它用于许多具有许多不同名称的文件(可能有数千个文件)。如何使宏独立于文件名?使用文件名“ADP”下方,现在此宏不适用于其他文件名,例如“CPL”或“DKH”

Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    ActiveWorkbook.Worksheets("ADP").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("ADP").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("ADP").Sort
        .SetRange Range("A1:G7694")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWorkbook.SaveAs Filename:="C:\Data\ADP.csv", _
        FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Close

【问题讨论】:

    标签: excel filenames vba


    【解决方案1】:

    将您的宏包装在带有参数的 Sub 过程中,并创建第二个调用它的子程序,就像这样

    Sub MyMacro(file as string, worksheetname as string)
        Columns("A:A").Select
        Selection.Delete Shift:=xlToLeft
        Range("A1").Select
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        ActiveWorkbook.Worksheets(worksheetname).Sort.SortFields.Clear
        ActiveWorkbook.Worksheets(worksheetname).Sort.SortFields.Add Key:=Range("A1"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets(worksheetname).Sort
            .SetRange Range("A1:G7694")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        ActiveWorkbook.SaveAs Filename:=file, _
            FileFormat:=xlCSV, CreateBackup:=False
        ActiveWorkbook.Close
    End Sub
    
    Sub Usage()
      MyMacro "C:\Data\ADP.csv", "ADP"
      MyMacro "C:\Data\CPL.csv", "CPL"
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多