[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『可変のセル範囲を取得して消去』(JA2136Ka-8)
こんにちは。
いつもお世話になっております。
基礎的な問題なのかもしれませんが、今
にっちもさっちもいかなくなっていてどなたかお助けくださいませ。
オートフィルターで抽出した可視セルを隣のシートに貼りつけて
フォームへの転記・印刷マクロを作っています。
転記・印刷コードは頂き物の使いまわしで何とかしのぐことができたのですが、
転記・印刷した後、データをクリアしたいのですが、これが意外に難しくて・・・。
つまりその時々で抽出されるデータの量が違いますので、
可変の範囲になってしまいます。
A列からY列までのデータで
右上は8行目、つまりcells(8,1)ですが、右下が可変なのでどう書けばいいのかと・・・。
行だけの最終行取得でしたら、
Cells(Rows.Count, 1).End(xlUp).Rowで、取れるのはわかるのですが
Y列の最終行までを書くのはどうしたらいいのでしょうか?
8行目から上はコマンドボタンとかが入っているので
消されてしまっては困るのです。
さっきネットでEntireRow というのを見つけて使ったところ、
コマンドボタンまで消えてしまいました。
又A列には入力規則で、ドロップダウンリストを設定してありますので
これが消えてしまうと困るからClearというコマンドを使うとその
リストも消えてしまうと思いますので、普通にClearContentsを
使う方がいいようです。
お忙しいところ恐縮ですが、どうかご教示よろしくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
なお、EntireRow だと、一度でも使った事のあるセルの右下を示すので、思ってもいないところまで対象になったのでしょうね。
CurrentRegion ならば、データが途切れているところから先は見ないので、使えるかもです。
(???) 2016/04/20(水) 16:41
コードアップ後、列範囲の限定を追加しました。(16:47)
>>8行目から上はコマンドボタンとかが入っているので 消されてしまっては困るのです。
コマンドボタン等の図形はセルを消去しても消えません。 8行目から上に消しては困る文字列が書きこまれているというなら別ですが?
実際にはどうなんでしょうか?
>>又A列には入力規則で、ドロップダウンリストを設定してありますので >>これが消えてしまうと困るからClearというコマンドを使うとその >>リストも消えてしまうと思いますので、普通にClearContentsを >>使う方がいいようです。
そうですね。Clear だと、セルの情報がすべて消えてしまいますので。 しかしながら、この入力規則はオートフィルターで抽出したものを、そのままフルでコピペしても消えます。 そこは大丈夫になっているんですね? 値のみの貼り付けにしているとか、コピー場所は入力規則が設定されている領域を避けて行っているとか。
いずれにしても、領域が A8〜Y● ということですよね。 で、●行目の下は空白ですね。 以下でお試しください。
With Sheets("対象シート名") .Range("A1", .UsedRange).Columns("A:Y").Offset(7).ClearContents End With
(β) 2016/04/20(水) 16:45
早速にありがとうございました。
???さま、CurrentRegionは思いつきませんでした。
今度試してみます。
数字表記については仰る通りかなと思うので以降気を付けるようにします。
今回はβさまご教示の方法でうまくゆきました。
ありがとうございました。
それとβさま、正確にはボタンが消えた、のではなく
ボタンに書いてある文字とボタンの説明書その他が
消えてしまったのです。
紛らわしい書き方をして申し訳ございませんでした。
それと入力規則ですが、オートフィルターでコピーした
データは入力規則を避けて貼りつけて貼りつけているので
大丈夫です。
細かいところまで気にして頂いて、感謝です。
とにもかくにも何とか動くようになりましたので、これで
枕を高くして眠れます。
ありがとうございました。
(JA2136Ka-8) 2016/04/20(水) 17:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.