如何提取公式的一部分并将其复制到变量中?

时间:2015-08-20 06:20:59

标签: excel vba excel-vba

我在一个单元格中有一个带有公式的excel文件:

=[file1_January-2015.xls]Sheet1!A1+[file2_January-2015.xls]Sheet1!A1

我需要编写一个宏,提取January-2015部分并将其更改为......下个月。因此,如果有December-2015,则应将其更改为January-2016。 我不知道如何提取公式的一部分并将其复制到变量...

1 个答案:

答案 0 :(得分:0)

我在回答自己。

我差点写了我需要的东西。它适用于一个月是数字“01”,“02”,......,“12”。因此,当公式为=[file1_01-2015.xls]Sheet1!A1

时,它会起作用
Sub change_path_in_a_formula()

    Dim cell As String
    cell = ActiveCell.FormulaR1C1

    Dim month As Integer
    month = Mid(cell, 9, 2)

    Dim change_year As Byte
    If month = 12 Then change_year = 1

    Dim year As Integer
    year = Mid(cell, 12, 4) + change_year
    month = (month Mod 12) + 1

    Dim zero_month As String
    If month < 10 Then zero_month = "0"

    ActiveCell.FormulaR1C1 = _
       Left(cell, 8) & zero_month & month & _
       Mid(cell, 11, 1) & _
       year & Mid(cell, 16, Len(cell) - 15)

End Sub