- ベストアンサー
Excel VBAでアンケート集計をしたいと思い、プログラムを作ったのですが、K列にデータを入れると元々存在していたK列のデータが消えてしまいます。どう修正すればデータが残るのでしょうか?
- Excel VBAでアンケート集計をする際、K列にデータを入れると元々存在していたK列のデータが消えてしまいます。
- データを登録する際に、K列に入力したデータが上書きされる問題が発生しています。
- どのように修正すれば、データが残るようになるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
たぶん、 [Database].Offset(行 - 1).Resize(1).ClearContents で、1行上の行をクリアしているのでは? 直後の [Database].Cells(行, 1) = txtNo.Value [Database].Cells(行, 2) = txtName.Text ・・・ を見ていると、 [Database].Offset(行).Resize(1).ClearContents とすべきでは?と思います。 ## 前の質問で大体見当はついたのだけど ## 書く前にクローズされていたようで。 ## でも、今回の質問のほうが全体のイメージが、かなりわかりやすいです。 ## →したがって、回答しやすいです。 ## 前回の質問では、Userformとかがどう絡んでいるのかまったくわからなかったので ## 回答書くのに躊躇して後回しにしていましたから。
その他の回答 (1)
- Siegrune
- ベストアンサー率35% (316/895)
ANo1ですが、 回答におかしな点があるので取り消しさせてください。 [Database]って名前をつけて、範囲指定しているのでは? と思われるのですが、どの範囲でしょうか? Offset()はその範囲の中での相対位置を示すはずなので、 別の行を [Database].Offset(行 - 1).Resize(1).Copy _ [Database].Cells(行 - 1, 1) でコピーしているのでは? と思われます。 原因は置いておいてとりあえずうまくいくようにしようと考えると、 [Database].Cells(行 - 1, 1).EntireRow.Insert [Database].Offset(行 - 1).Resize(1).Copy _ [Database].Cells(行 - 1, 1) [Database].Offset(行 - 1).Resize(1).ClearContents の [Database].Offset(行 - 1).Resize(1). をすべて、 [Database].rows(行).Resize(1). にすればうまくいきそうですが。
お礼
ありがとうございます やってみます
お礼
ありがとうございます やってみます
補足
[Database].Offset(行).Resize(1).ClearContents に変更して 実行すると 直下にあるデータが全部消えてしまいました ><;; すいません I列まではうまく残ってくれるのですが、J列からがなぜだか残らずに消えてしまうのです。 なぜでしょうか ? 教えてください