0

好的..我整天都在尝试解决这个问题,现在我正在寻求帮助

我所拥有的:在 excel 中,我在单元格 A1 中输入了一个值 101。在它旁边的单元格 B1 中,我有一个显示 A1 单位的下拉列表。现在是 Pa。所以我有 (101 | Pa)

我想要什么:我将 B1 下拉列表更改为 atm,并且我希望它自动将单元格 A1 中的值更新为 1 | 自动取款机。

我有一个解决方法,需要用户输入另一个单元格,然后根据 B1 进行更新,但这不是那么干净和专业。

我希望你能理解我的问题。

您的意见表示赞赏。

谢谢

4

1 回答 1

1

为此,您将需要一些 VBA。

使用 Change 事件检测单位何时更改,更新原始值

把它放在工作簿模块中:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim OldUnit As Variant
    Dim NewUnit As Variant
    Dim ConversionFactor As Double
    If Target.Cells.Count = 1 And Target.Column = 2 Then
        ' Save new units
        NewUnit = Target
        ' prevent recalling this code when we update cells
        Application.EnableEvents = False
        ' Get old units
        Application.Undo
        OldUnit = Target
        ' put new units back on sheet
        Target = NewUnit
        ' work out your conversion factor based on old and new units
        ConversionFactor = 0.5 ' for testing
        ' update value
        Target.Offset(0, -1) = Target.Offset(0, -1) * ConversionFactor

        Application.EnableEvents = True
    End If
End Sub
于 2012-05-11T03:21:55.777 回答