Note: The other languages of the website are Google-translated. Back to English

Excelで別のセルの値が変更された場合、指定されたセルの内容をクリアするにはどうすればよいですか?

別のセルの値が変更された場合に、指定されたセルの内容の範囲をクリアしたい場合、どうすればよいですか? この投稿では、この問題を解決する方法を紹介します。

別のセルの値がVBAコードで変更された場合は、指定されたセルの内容をクリアします


別のセルの値がVBAコードで変更された場合は、指定されたセルの内容をクリアします

以下のスクリーンショットに示すように、セルA2の値が変更されると、セルC1:C3の内容が自動的にクリアされます。 次のようにしてください。

1.ワークシートで、別のセルの変更に基づいてセルの内容をクリアします。シートタブを右クリックして、を選択します。 コードを表示 コンテキストメニューから。 スクリーンショットを参照してください:

2.オープニングで アプリケーション向け Microsoft Visual Basic ウィンドウで、VBAコードの下をコピーしてコードウィンドウに貼り付けます。

VBAコード:別のセルの値が変更された場合、指定されたセルの内容をクリアします

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

注意:コードでは、B2はセルの内容をクリアするセルであり、C1:C3は内容をクリアする範囲です。 必要に応じて変更してください。

3。 プレス 他の + Q を閉じるためのキー アプリケーション向け Microsoft Visual Basic 窓。

次に、下のスクリーンショットに示すように、セルA1の値が変更されると、範囲C3:C2のコンテンツが自動的にクリアされることがわかります。


関連記事:


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (38)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
別の変更がうまく機能した場合にセルをクリアするコード!!!! しかし、私はそれを逆に機能させる必要があります.....そのコードはどのように書かれていますか??


ご協力いただきありがとうございます
このコメントは、サイトのモデレーターによって最小化されました
親愛なるスコット、
逆に働くとはどういう意味ですか? 特定のセル(C1:C3)の内容を手動でクリアする場合、セルA2の内容を自動的にクリアしますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、これは固定ソースセル(A2)でのみ機能しますが、ソースが可変セルであるなど、これはどのように動的に機能しますか? 書いてみました
A = activecell.row
交差しない場合(Target、Range( "A"&A))は何もありません
Range( "C1:C3")。ClearContents
終了する場合

これはアクティブセル(つまり選択)に関しては機能するはずですが、機能していません
感謝
このコメントは、サイトのモデレーターによって最小化されました
グッド·デイ、
以下のVBAコードをお試しください。 コメントありがとうございます。

プライベートサブワークシート_Change(ByValターゲットを範囲として)
If(Not Intersect(Target、Rows(1))Is Nothing)And(Target.Count = 1)Then
Range( "C1:C3")。ClearContents
終了する場合
End Subの
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私は「x」が特定のセルに入力されたときにデータのセルの範囲をクリアする方法を探しています。 上記の式を使用しましたが、その13行で完全に機能しました。 問題は、それを多くの行に拡張する必要があることです。 たとえば、「D13」に「x」を入力した場合、範囲J:13〜v:14をクリアする必要があります。 また、d:14〜v:14の範囲をクリアする必要があるため、「DXNUMX」にxが入力された場合にも発生する必要があります。 それを書く方法はありますか? ご協力いただきありがとうございます!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、これは私の仕事ではありません。 何も変わりませんが、エラーもありません。 任意のヒント?
このコメントは、サイトのモデレーターによって最小化されました
良い一日、
ご不便おかけしてすみません。 Officeバージョンを提供しますか? ご意見ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
A2の場合、別のワークシートからセルを参照するにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
VBAなしでこれを行う方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちはソニア、
VBA以外の解決策は見つかりませんでした。 ご意見ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
テーブルがあり、複数の空白が必要な場合、どのVBAコードを使用しますか?

私のテーブルはB3:E7です。 列Bの内容がクリアされた場合、その行の列C、D、Eのデータをクリアしたいと思います。 3行目には以下がありますが、4,5,6、7、XNUMX、XNUMX行目にも同じようにしたいと思います。

プライベートサブワークシート_Change(ByValターゲットを範囲として)
交差しない場合(Target、Range( "B3"))は何もありません
Range( "C3:E3")。ClearContents
終了する場合
End Subの
このコメントは、サイトのモデレーターによって最小化されました
ダブルクリックでセルの内容をクリアするだけではどうでしょうか。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、例の複数のセルのコードをどのように繰り返しますか?つまり、セルa4とa5の内容を削除した場合、それぞれb4:z4とb5:z5の内容をクリアしたいので、これを行う必要があります1000行の大きなスプレッドシートの場合、アドバイスをいただければ幸いです。
このコメントは、サイトのモデレーターによって最小化されました
こんにちはジュリアン、私も同じものを探しています。これに対する解決策があれば教えてください。
このコメントは、サイトのモデレーターによって最小化されました
それに応じて番号を変更してください
Dim i As Integer
プライベートサブワークシート_Change(ByValターゲットを範囲として)
私は= 2ため10へ
lookrange = "A"&i
contentrange = "B"&i& ":"& "C"&i
交差しない場合(Target、Range(lookrange))は何もありません
Range(contentrange).ClearContents
終了する場合
私は次の
End Subの
このコメントは、サイトのモデレーターによって最小化されました
こんにちはsagarsrinivas0312、このコードをありがとうございました。 私はすでにこの解決策をXNUMX週間探しています!
このコメントは、サイトのモデレーターによって最小化されました
これは素晴らしいです、ありがとう。 これを複数回行うにはどうすればよいですか...別の列に基づいて他のセルをクリアしますか?
このコメントは、サイトのモデレーターによって最小化されました
riusciresti a scrivermelo in modo che debba solo fare copyia ed incolla?
non riesco veramente a farlo funzionare

グレシーミル
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
「販売済み」という名前のシートの列Cで空白のセルが見つかり、「請求書」という名前のシートからマクロが実行された場合、列AとBの余分なセルをクリアしようとしています。

ヘルプサイトから以下のコードを取得しましたが、希望どおりになりません。
それについて私を助けてください。 スクリーンショットは私が欲しいものを添付しました。

合計Clear()

薄暗い
g=2の場合ActiveSheet.UsedRange.Rows.Countへ
If Cells(g、 "C")。Value = "" Then
Cells(g、 "A")。ClearContents
Cells(g、 "B")。ClearContents

終了する場合
次へ
エンドサム
このコメントは、サイトのモデレーターによって最小化されました
指定されたセルの内容が別のシートのセルによって制御されている場合、これは機能しないように見えますか? これに対する修正はありますか?
セル名の使用例
セル「A2」が(= sheet1 [@ [a5]]で、この番号がシート1で変更された場合、A2の内容が変更され、指定された範囲の内容がクリアされません。
このコメントは、サイトのモデレーターによって最小化されました
プライベートサブWorksheet_Activate()
If Range( "S2")<> Range( "A2")。Value Then
Range( "S2")= Range( "A2")。Value
Range( "d2:g2")。ClearContents
終了する場合
「S2」は、データ範囲外の任意のセルに置き換えることができます。 VBAが実行しているのは、「S2」のデータを自動的に更新することです。更新されるデータは、指定した範囲と、それがクリアされるかどうかを制御するものです。
これは、ワークシートの内外で参照セルを使用するときにこれを正常に実行できる唯一の方法です。
このコメントは、サイトのモデレーターによって最小化されました
必要なものではありませんが、そこに到達します。空のセルE3があります。B3にデータがあります。E3にデータを入れると、B3と同じ場合、B3が削除されます。
このコメントは、サイトのモデレーターによって最小化されました
トリガーセルに特定の番号が含まれている場合、指定されたセルの内容をクリアすることはできますか? たとえば、セルA1 = 1の場合、セルA2:A4をクリアしますか?
このコメントは、サイトのモデレーターによって最小化されました
ボンジュールTOUTルモンド、

Besoin d'aide、j'ai besoin d'effacer le contenu d'une cellule de la Colonne "I" si la cellule(delamêmeligne)de la Colonne "O" = 0、sur environ 2000 lignes avec des titres tout le10lignes環境。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

「B2」がデータ検証リストから「はい」を選択した場合、セルB3はデータをクリアします...その逆:「B3」がデータ検証リストから「はい」を選択した場合、簡単な方法を探しています。データ検証リスト、セル「B2」はデータをクリアします。

基本的に B2 or B3 と言える "あり」(データ検証リストから)しかし同時には決して、 一方が他方をクリアする必要があります.
このコメントは、サイトのモデレーターによって最小化されました
こんにちはジェフ、
次のVBAコードはあなたに有利に働きます。 ぜひお試しください。
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220721
If Target.Cells.Count > 1 Then Exit Sub
    If (Not Intersect(Target, Range("B2")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B3").ClearContents
        Else
        If (Not Intersect(Target, Range("B3")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B2").ClearContents
    End If
    End If
End Sub
このコメントは、サイトのモデレーターによって最小化されました
Buongiorno, avrei bisogno di cancellare una serie di caselle (un rettangolo, quindi su più righe e Colonne) in base al valore di un'altra cella. es: se la cella A2 è 劣ったディ 12, il quadrato con vertici opposto C2 : F4 venga cancellato.
グラツィエミルフィーユ
このコメントは、サイトのモデレーターによって最小化されました
ピエトロさん、こんにちは。
申し訳ありませんが、私はあなたの質問をよく理解していません。 データのスクリーンショットをアップロードしてもよろしいですか?
このコメントは、サイトのモデレーターによって最小化されました
この問題は、VBA で解決できます。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Меняю А2 удаляется из G2, меняю А3 удаляется из G3, меняю A6 удаляется из G6 および т.д.

プライベートサブワークシート_Change(ByValターゲットを範囲として)
交差しない場合(Target、Range( "A2"))は何もありません
Range("G2").ClearContents
終了する場合
End Subの


デイビッド・クオド・ド・ソン・ド・ド・ド・ナ・マ・エ・イキ、ア・カク・エグオ・レ・ア・ジ・ド・ド・ド・ド・ド・ド・ド・ク・ド・ド・ド・ド・ナ・マ・エ・イキ
このコメントは、サイトのモデレーターによって最小化されました
こんにちは。
次の VBA コードは、問題の解決に役立ちます。 ぜひお試しください。

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221013
    Dim xRight As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A:A")
    Set xRight = Target.Offset(0, 6)
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        xRight.ClearContents
    End If
End Sub
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

ズー・プンクト 3.
Die Taste "Andere" Finde ich nicht auf meiner Windows Tastatur. Ich Habe Strg, Alt, Tab... allerdings die Taste Andere gibt es auf meiner Tastatur leider nicht.

リーベン・グルス・マティアス
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、マティアスです。
キーボードに対応するキーが見つからない場合。 をクリックするだけで セールで節約 ボタンの Microsoft Visual Basic アプリケーション ウィンドウ をクリックしてコードを保存し、このウィンドウを手動で閉じます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
以下のコードは宣伝どおりに機能しますが、次の問題が発生します。

まず、対象のテーブルのサイズを変更すると、すべてのテーブル データがクリアされ、列 1 以外のすべてのヘッダーが「列 1、列 2 など」に再ラベル付けされます。

次に、テーブルの行を削除すると、「実行時エラー 1004 (オブジェクト Range のメソッド オフセットが失敗しました。


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F3:F500")) Is Nothing Then
     Target.Offset(0, 1).ClearContents
    ElseIf Not Intersect(Target, Range("G3:G500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
        Target.Offset(0, 2).ClearContents
    ElseIf Not Intersect(Target, Range("H3:H500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
    End If
End Sub


何が間違っている可能性がありますか?

前もって感謝します!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、オフィス オンラインのデータベースにアクセスして、ONEDRIVE にアクセスしてください。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは天使、
VBA コードは Office Online では機能しません。 ご不便おかけしてすみません。
ここにはまだコメントが投稿されていません
もっと読む
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護