1

在 Excel 中的单个工作表上,我希望在输入数字后让不同的范围自行计算。

例如,在 A1:C4 范围内,我想乘以 4

所以如果我在单元格 A1 中输入 1,我会得到 4,2 我会得到 8 等等。

然后在 B12:F14 范围内,我想乘以 2,这样如果我在单元格 B12 中输入 1,我得到 2,2 我得到 4,依此类推。

目前我有以下适用于整个工作表的 VB。

Private Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Target.Value) Then
    Application.EnableEvents = False
    Target.Value = Target.Value / 100
    Application.EnableEvents = True
End If
End Sub
4

1 回答 1

1

您只需要添加一些逻辑来检查并查看Range包含Target. 您可以通过一些If...Then语句非常简单地做到这一点。

首先,我分配了两个范围变量rng1rng2它们分别代表您提到的范围(A1:C4B12:F14分别),然后,我使用该函数检查Target是否在其中一个范围内。Intersect

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng1 As Range
    Dim rng2 As Range
    Set rng1 = Range("A1:C4")
    Set rng2 = Range("B12:F14")
    Application.EnableEvents = False
    If IsNumeric(Target.Value) Then
        '## Determine what to do with the cell, based on what range it's in
        If Not Intersect(Target, rng1) Is Nothing Then
            Target.Value = Target.Value * 4
        End If
        If Not Intersect(Target, rng2) Is Nothing Then
            Target.Value = Target.Value * 2
        End If
    End If
    Application.EnableEvents = True
End Sub

这样,您可能会发生两种不同的操作,具体取决于它们的Target位置。如果Target不在这两个范围内,则不会发生任何事情。

您可以添加其他Range变量和If...Then语句来说明您可能需要的其他计算。

于 2013-06-26T16:07:04.473 回答