0

OK ..私は一日中この問題を解決しようとしました、そして今私は助けを求めています

私が持っているもの: Excelでは、セルA1に101の値を入力します。その隣のセルB1には、A1の単位を示すドロップダウンリストがあります。今はPaです。だから私は(101 | Pa)を持っています

必要なもの:B1ドロップダウンリストをatmに変更し、セルA1の値を自動的に1に更新したい| atm。

ユーザーが入力し、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 に答える