【问题标题】:vba write a macro to change a number in a workbooks namevba编写一个宏来更改工作簿名称中的数字
【发布时间】:2015-03-04 15:31:11
【问题描述】:

我想要一个在年初发生变化的宏,例如,

Workbooks("cash 2014.xlsx").Worksheets("sum").Activate

Workbooks("cash 2015.xlsx").Worksheets("sum").Activate

我已经创建了 2015 年 1 月 1 日将给我 d = 2015 的步骤,以便我可以编写

y = "cash " & d & ".xlsx", which yields cash 2015.xlsx (with no quotes).

如果我再写 Workbooks(y).Worksheets("sum").Activate, 要么 Workbooks("y").Worksheets("sum").Activate, Excel 不会运行任何一个。

VBA 也无法识别: 工作簿(""cash" & d & ".xlsx"").Activate 要么 Workbooks('"cash" & d & ".xlsx"').Activate 要么 Workbooks("'cash' & d & '.xlsx').Activate

【问题讨论】:

    标签: excel concatenation filenames renaming vba


    【解决方案1】:

    如果你想分解旧名称并用新的一年重命名,试试这个。

    只要表格是“AAAA ####.ext”,名称和年份之间有一个空格。

    这将采用旧名称,打破年份,添加一个,然后另存为新名称。

    Sub RenameNewYear()
    Dim oldPath As String, path As String, OldName As String, fileExt As String
    Dim tempYear As Long, newYear As Long
    Dim old() As String
    Dim Filename As String, FileNPath As String
    
        path = ActiveWorkbook.path    'C:\users\owner\desktop
        OldName = ActiveWorkbook.Name '"cash 2015.xlsm"   
    
        'Split original name up into sections.  
        old = Split(OldName, ".")     'old(0) = "cash 2014", old(1) = "xlsm"
        fileExt = "." & old(1)        '.xlsm
        old = Split(old(0), " ")      'old(0) = "cash", old(1) = "2014"
    
        tempYear = CLng(old(1))       '2014
        newYear = tempYear + 1        '2015
    
        Filename = (old(0) & " " & newYear & fileExt)   '"cash 2015.xlsm"
    
        FileNPath = path & "\" & Filename           'C:\users\owner\desktop\cash 2015.xlsm
    
        ActiveWorkbook.SaveAs fileName:=FileNPath
        Sheets("sum").Activate
    End Sub
    

    要打开它,您可以使用:但它已经打开,因为最后一个代码保存为新名称。

    Workbooks.Open Filename:=FileNPath
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      Workbooks("cash" & d & ".xlsx").Activate
      

      或者

      y = "cash " & d & ".xlsx"
      Workbooks(y).activate
      

      如果您在变量周围加上引号,它们就会变成字符串并被解释为 dy

      另外,最好为你的变量想出名字,这样下一个必须维护你的代码的人就不会在你的新工作中追捕你,用一双筷子刺你的眼球,同时对你大喊大叫.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 2021-04-29
        相关资源
        最近更新 更多