アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロについて。S列の途中からデータがある最終行まで消したいのですが、

Range(”S8”,Cells(Rows.Count,1).End(xlUp)).Select

Selection.ClearContents

と書いて実行すると
A〜S列丸ごとデータが消えてしまいます。

S列のみ消したい場合はどうすればよいのでしょうか?

ネットも探していますが列の最終行までっていうのがなかなか見つからず困っています。
どうかご教示ください。

質問者からの補足コメント

  • S列全部じゃなく、途中から最終行までなので、難しいです…

      補足日時:2017/01/05 17:06
  • 言い忘れてました。データは所々入っていて、連続ではありません。

      補足日時:2017/01/06 09:48

A 回答 (8件)

途中に空白があるなら、基準となる最下位行から上に検索して最終行を求めないとイケナイ。



Range("S8:S" & Range("S1").Range("S65536").End(xlUp).Row).Clear

.End(xlUp).Row

.Range("S65536").End(xlUp).Row
    • good
    • 1

s列は19列目なのでRange("s8",Cells(Rows.Count,19).End(xlup)).SelectもしくRan

ge("s8",Cells(Rows.Count,"S").End(xlup)).Select
    • good
    • 0

綴りが間違っていました。


Range(Range("s1").End(xldown),Range("s140000").End(xlup)).Value=vbEmpty
    • good
    • 0

Range(Range("s1").End(xldown),Range("s140000").End(xavier)).Value

=vbEmpty
    • good
    • 0

「データがある最終行」を特に意識する必要がありますか?


こんな感じで、無条件にシートの最終行まで消してしまっても処理時間は気にならないと思います。

Range("S8:S" & Rows.Count).ClearContents
    • good
    • 1

お礼への回答



No.1 について
まずは掲載ミスだと思いますが「Range("S8:S" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents」としての説明です。
これですとA列の最後までになってしまいます。
「Range("S8:S" & Cells(Rows.Count, 19).End(xlUp).Row).ClearContents」にして下さい。

No.2 について
特別な定義など不要です。
こちらでテストしましたがエラーは出ませんでした。
掲載ミスがあるところから、もしかしたら手打ちをして入力ミスがありませんか?コピペを使ってもう一度お試し下さい。
    • good
    • 0

「Select」は不要です。



忠実にするならば
「Range(Cells(8, 19), Cells(Cells(Rows.Count, 19).End(xlUp).Row, 19)).ClearContents」
※「19」はS列の列番号です。

でも、どうせエクセルの使える最終行までクリアしても変わらないので
「Range(Cells(8, 19), Cells(Rows.Count, 19)).ClearContents」
でも良いと思います。
    • good
    • 0
この回答へのお礼

後者でためしたら、実行エラー1004
オブジェクト定義エラーがでましたが、私が何か定義するべきことがあるんでしょうか?

お礼日時:2017/01/06 09:24

Range("S8:S" & Range("S1").End(xlDown).Row).Clear

    • good
    • 0
この回答へのお礼

すみません、うまくいかず、上記を参考にし
Range(”S8:S” & Cells(Rows.Count,1).End(xlUp).Row.ClearContents
で試したら何故か最終行400の場合
382〜消えていませんでした。泣
難しい…!

お礼日時:2017/01/06 09:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A