
Excel に数値リストを含むシートがあります。X 単位をあるセルから別のセルに移動したい場合があります。
教室に子供たちがいて、それぞれが一定数のビー玉を持っているとします。シートには 2 つの列があり、最初の列は名前、2 番目の列はビー玉です。ジョンはビルに 375 個のビー玉を渡します。シートを更新します。
現在、私は電卓を取り出して、減算と加算を行い、セルを手動で更新しています。
これは面倒で、エラーが発生しやすいです。もっと良い方法はあるでしょうか?
(セルに「=8300+375」と入力することはできますが、最終的には各セルに非常に長い数式が入ることになります。)
答え1
答え2
マテ・ユハスこの投稿を見て、VBA マクロをお勧めしようと思いました。VBA マクロの方が高速で、時間も節約できるからです。きっと扱えると思います。
使い方:
- Range にデータがあると想定しています
A2:B4
。 減算したい値を入力します
C2:C4
。から開発者タブ、 クリックデザインモード
それから入れる& からActiveX コントロール
クリックコマンドボタンアイコン
シートに描きます。クリックコマンドボタン、VB エディター Windows にアクセスします。
コピーペーストこのコード
プライベートサブCommandButton1_Click()
終了サブ。
Range("C2:C4").Select Selection.Copy Range("B2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, SkipBlanks:= _ False, Transpose:=False Range("C2:C4").Select Selection.ClearContents Application.CutCopyMode = False
VBエディタWindowsからクリックファイルメニューそしてヒット閉じてMicrosoft Excelに戻る。
最後にクリックコマンドボタン。
Column B
新しい値は、(スクリーンショットを確認してください)にあります。
注意
セル内の新しい値から古い値を減算する場合のみ、この VBA コードを使用できます。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 2 And Target.Row = 1 Then
NewVal = Range("B1").Value
Application.EnableEvents = False
Application.Undo
OldVal = Range("B1").Value
Range("B1").Value = NewVal
Range("B1").Value = NewVal - OldVal
Application.EnableEvents = True
End If
End Sub
プレスALT+F11VBエディタを開いてコピーペースト上記のコードは標準モジュール。
の値を上書きするとすぐに
B1
、コードはそれを古い値から減算し、 新しい値で
書き換えます。B1
必要に応じてデータ範囲を調整します。