2012-05-11 6 views
0

[OK]を..私は一日中、この問題を解決しようとしたと今、私は助けを求めていますExcelで入力セルを更新する方法

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

私が望むもの:B1ドロップダウンリストをatmに変更し、セルA1の値を1に自動的に更新します。 atm。

私はユーザーが入力するために別のセルを必要とする回避策を持っていますが、B1に従って更新しますが、これはきれいで専門的ではありません。

私の質問を理解できることを願っています。

ご入力いただきありがとうございます。

ありがとうございました

+0

あなたは数の入力セルがでフォーマットすることにしますか番号とユニット?だから、B1はユニットの選択ですが、A1には数字とパイププラスユニットが表示されます。ですから、あなたはA1から101までのフォーマットをした後で、ユーザーがA1を選択して番号を102に更新すると、編集中に「| Pa」の部分が不要になります。要するに、あなたが目指していることを理解しようとしています。 – Mirko

+0

数字がA1に入力されたときの単位は、真の値になります。次に、B1を変更するとそれに応じてA1が更新されます。たとえば、cmを使用するのではなく、cmを使用したい場合は、B1をinに設定してA1に値1を入力します。次に、B1をcmに変更すると2.54に更新されます。 cm。 – Programmer

+0

私はVBAを使用することがこれに少しだけ熱心だと思います。おそらくあなたが必要とするのは、良い公式とおそらく参照テーブルだけです。私はあなたが何を得ているのか分かっていると思うが、もっと情報が必要だ。インチからセンチメートルに変換するのは簡単ですが、101〜PAと1〜ATMには混乱があります。ドロップダウンに含まれるものと返される対応する値の完全なリストを提供できますか? –

答えて

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 
+0

Neilsen氏、ありがとうございます! – Programmer

関連する問題