プログラムまたは手動で値、たとえば 10000 を Excel セルに入力した場合、自動的に 1000 で割る必要があります。
No.1、表示形式について質問しているわけではありません。入力値を真剣に変更する必要があります。
No.2、式はワークシート全体には当てはまりません。
これは、ワークシートの変更イベントを使用して行うことができます。ただし、このイベントが発生するたびにではなく、一度だけ実行するようにするには、どこかで値を追跡する必要があります。これは、目に見えないシート、シートの別の場所などで行うことができます。
論理的には、基本的に、セルが変更されたときに、これを発生させたいセルの範囲内にあるかどうかを確認します。そうである場合は、レコードと比較して、セルに触れる前 (変更は行われていない) の値と同じではないことを確認します。変更されている場合は、単純に 1000 で割り、レコードを更新します。
お役に立てれば。
Private Sub Worksheet_Change(ByVal Target As Range)
'Turn off events to stop this from looping
Application.EnableEvents = False
'Let's say you want this to happen for A1:A10
'Store the value of the cells on a hidden sheet or somewhere. Here let's assume B1:B10 is the hidden record
If Target.Column = 1 Then
If Target.Row > 0 And Target.Row < 11 Then
If Target.Value <> Target.Offset(, 1) Then
Target.Value = Target.Value / 1000
Target.Offset(, 1).Value = Target.Value
End If
End If
End If
'Turn events back on
Application.EnableEvents = True
End Sub
何らかの理由で申し訳ありませんが、フォーマットがコードを適切にインデントしていません...