我必须在不同的场景中多次使用它。所以我将举一个例子,希望我可以在其他地方重复使用代码。我需要计算圆柱体的直径或高度(用于页面的其他地方),这两个单元格位于 1 列 E17、E18。在 1 中输入数据应该可以计算出另一个(因为高度和直径与 E16 中的体积相关)。希望我不需要宏,因为我是新手。
答案1
输入您的直径A2圆柱高度B2。 在C2输入圆柱体积的公式:
=B2*PI()*(A2/2)^2
然后复制C2并将 PasteSpecialValues 返回到其自身:
最后将以下事件宏放置在工作表代码区域:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A2 As Range, B2 As Range, A2B2 As Range
Dim Intersection As Range, C2 As Range
Dim pie As Double
pie = WorksheetFunction.Pi()
Set A2 = Range("A2")
Set B2 = Range("B2")
Set C2 = Range("C2")
Set A2B2 = Range("A2:B2")
Set Intersection = Intersect(Target, A2B2)
If Target.Count > 1 Then Exit Sub
If Intersection Is Nothing Then Exit Sub
If Target.Value <= 0 Then Exit Sub
Application.EnableEvents = False
If Target.Address(0, 0) = "A2" Then
B2.Value = C2.Value / (pie * (A2.Value / 2) ^ 2)
Else
A2.Value = 2# * ((C2.Value / B2.Value) / pie) ^ 0.5
End If
Application.EnableEvents = True
End Sub
如果你改变A2, 然后B2会调整。
如果你改变B2, 然后A2会调整。
如果你改变C2,不会立即发生任何事情,但未来对A2或者B2将根据新的体积值重新计算另一个。
因为它是工作表代码,所以很容易安装并自动使用:
- 右键单击 Excel 窗口底部附近的选项卡名称
- 选择查看代码-这将打开一个 VBE 窗口
- 粘贴内容并关闭 VBE 窗口
如果您有任何疑虑,请首先在试用工作表上尝试一下。
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
到消除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解有关事件宏(工作表代码)的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/event.htm
必须启用宏才能使其工作!