• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索して修正したデータの上書転記)

Excel VBAマクロでデータの上書転記方法について

このQ&Aのポイント
  • Excel VBAマクロを使用して、入力シートのデータを一覧表シートに転記する方法を実装しました。しかし、データを修正して一覧表シートに更新(上書転記)する方法が分かりません。ご存知の方、教えてください。
  • Excel VBAマクロを使って、入力シートのデータを一覧表シートに転記する方法を実装しました。しかし、データを修正して一覧表シートに上書きする方法が分かりません。どなたかお知恵をお貸しください。
  • Excel VBAマクロを使用して、入力シートのデータを一覧表シートに転記するプログラムを作成しました。しかし、データを修正して一覧表シートに上書きする方法が分かりません。どなたか解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

3度書き、大変申し訳ありません。(前の回答消して欲しいっす) Sub 検索()    ・・・ 略 ・・・   Range("A1") = myRng.Row End Sub Sub 登録()   no = Range("A1")   motoHani = Array("C4", "C10", "C12", "C13")   For i = 0 To UBound(motoHani)     Range("テーブル").Cells(no, i + 1) = Range(motoHani(i)).Value   Next End Sub で、どうですか? ・一応検索した行数をA1セルに保存しています。 ・登録後、セルをクリアするなどはアレンジしてください ・型宣言何もしてません。 文章での説明は大変苦手です。失礼しました。

hs7109
質問者

お礼

回答ありがとうございます。 出来ました。!(^^)! なんとか、私の目的の物が出来上がりそうです。 だんだん楽しくなってきました。 今回も、大変助かりました。 前回より、何度も何度もご丁寧にアドバイスいただいて、本当にありがとうございます。 お詳しくて、羨ましいです。 私も、もっと勉強しなければ・・・とつくづく感じました。 今後とも、アドバイス宜しくお願いします。 本当に本当にありがとうございました。

その他の回答 (2)

回答No.2

すいません。ボタンを押してから気が付きました。 単純に Range(motoHani(i)).Value = myRng.Offset(0, i + 1) → myRng.Offset(0, i + 1) = Range(motoHani(i)).Value を変更しただけだと、C4セルのデータが修正された時に 上書きできませんでした。 やはり、検索した時に行番号を保存しておく方法で上書きですかね。 (他に良い方法もあるかもしれませんが) 2度書きすみません。

hs7109
質問者

お礼

>2度書きすみません。 いえいえ、とんでもないです。 こちらこそ、毎回の質問に回答いただき、本当にありがとうございました。 どちらに御住まいかわかりませんが、足を向けて寝られません(^_^;)

回答No.1

単純に上書転記なら、 検索の Range(motoHani(i)).Value = myRng.Offset(0, i + 1) → myRng.Offset(0, i + 1) = Range(motoHani(i)).Value で出来ると思いますよ。 検索時にFindで検索された行番号をどこかのセルに保存しておいて、 (変数に入れてもいいですが) 転記する時にそのセルを使用して上書きすれば検索の2度手間は省けます。 もし、キーがあるとしたら、 (例えば、このプログラムではC4セルをキーに一覧を検索してますが、 このキーが変更されたら、追加として処理し 変更されていなければ、修正として処理など) 少し面倒ですね!(詳細がわかりませんので、こちらの回答は省きます。)

hs7109
質問者

お礼

前回に引き続き、ありがとうございました。

関連するQ&A