使用excel中的宏来偏移/更改所选单元格中公式中的所有行号

时间:2013-04-18 09:24:17

标签: excel excel-vba row formula offset vba

我有大量辅助行使用简单的sum函数从不同的工作表中获取信息:

=SUM('HIS-WOT'!J36,'HIS-WOT'!J82,'HIS-WOT'!J128)

是否有一个宏可以让我更改/偏移多个选定单元格中的所有行数等量(即 221 )以获得如下公式: / p>

=SUM('HIS-WOT'!J257,'HIS-WOT'!J333,'HIS-WOT'!J349)

我需要更改各种行号的数量会有所不同,因此宏需要有一个对话框,允许用户根据用户想要增加或减少行数来选择。

谢谢!

1 个答案:

答案 0 :(得分:0)

此代码将创建一个虚拟工作表来复制公式,我喜欢你的问题!

Sub test()

    Dim nbr As Long, cel As Range, cels As Range, sh As Worksheet
    Set cels = Selection

    nbr = CLng(InputBox("Enter offset:"))

    Set sh = Worksheets.Add

    For Each cel In cels

        If cel.HasFormula Then

            sh.Cells(cel.Row + nbr, cel.Column).FormulaR1C1 = cel.FormulaR1C1
            cel.Formula = sh.Cells(cel.Row + nbr, cel.Column).Formula

        End If

    Next

    Application.DisplayAlerts = False
        sh.Delete
    Application.DisplayAlerts = True

End Sub