将宏应用于所选单元格

时间:2015-04-13 04:49:26

标签: excel-vba vba excel

我想创建一个宏,将所选单元格的内容乘以固定值。我应用此单元格的每个单元格都包含一个引用单独工作表中单元格的公式。公式和单元格引用必须保持不变,并且只能乘以一个因子。

我如何实现这一目标?

到目前为止,我的尝试导致每个单元格以相同的值结束(它恢复到原始单元格值并乘以该数字!)或者它只是附加乘法的文本而不是给我一个值。

这是我目前所拥有的。它只是将文本附加到末尾并删除原始数据的链接:

Sub Macro2() ' ' Macro2 Macro ' ' Keyboard Shortcut: Ctrl+q ' 
    Set rngMyRange = Selection 
    ActiveCell = ActiveCell & "*1.9599" 
End Sub

1 个答案:

答案 0 :(得分:0)

这将采用现有公式,将其括在()括号中,并附加乘法。这应该保留现有公式的单元格引用,尽管我只是在几个非常简单的公式上进行了测试。

Sub MultiplyFomulaByPi()

    Dim factor As Double
    factor = 3.1415926

    Dim r As Range
    Set r = Selection

    'Get old formula
    Dim oldFormula As String
    oldFormula = Mid(r.Formula, 2) 'removes the leading "=" sign

    'Assign new formula 
    r.Formula = "=(" & oldFormula & ")*" & factor

End Sub

示例,之前和之后:

enter image description here enter image description here