有时您需要调整存储在工作表单元格中的值。大多数情况下,Paste Special提供的工具恰好可以满足要求。例如,您可以使用“选择性粘贴”对一个单元格区域中的值进行乘法或除法,如_ExcelTips的其他问题所述。_

但是,使用“选择性粘贴”有一个缺点-它更改了您可能不希望发生的实际值。为什么?因为在对值进行调整后四个月,您可能不记得确切地做了什么,或者是初始值是什么。

出于这个原因,您可能会更希望用表示替换调整的公式替换值。例如,您在单元格B3中的值可能为100,并且您想将其增加10%。使用选择性粘贴,您可以轻松地将其更改为110,但是您可能想用公式= 100 * 1.1替换该值。有了这样的公式,从现在开始四个月就不会有任何关于起始值或您对它做了什么的问题了。

用公式调整值的唯一方法是使用宏,例如以下宏:

Sub Adjust()

Dim c As Range     Dim sForm As String     Dim sMod As String          Set Target = ActiveSheet.Range(ActiveWindow.Selection.Address)

sMod = InputBox("Formula to add?")

If sMod > "" Then         For Each c in Selection             If c.HasFormula Then                 sForm = c.Formula                 sForm = "=(" & Mid(sForm, 2, 500) & ")"

sForm = sForm & sMod                 c.Formula = sForm             Else                 c.Formula = "=" & c.Value & sMod             End If         Next c     End If End Sub

要使用此宏,请选择要调整的单元格,然后运行它。

要求您提供添加到单元格的公式。例如,如果要将单元格乘以1.1,则应输入1.1(星号乘法符号,后跟1.1)。宏然后逐步遍历每个选定的单元格并进行调整。如果单元格包含公式,则将根据您的指定调整公式。如果该单元格包含其他任何内容,那么它将变成包含您的调整的公式。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2592)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: