[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『A列が空欄のときE列にRANDをいれない』(Ty)
いつも楽しく勉強をさせていただいています。 ありがとうございます。
A列が空欄の時、E列に"=RAND()"を入れないようにするには 下記にどのように書き書き加えればいいのでしょうか、お教えください。
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Range("E2").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Selection.AutoFill Destination:=Range("E2:E20"), Type:=xlFillDefault
Range("E2:E20").Select
Range("C1").Activate
Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
Range("E2:E20").Select
Selection.ClearContents
Range("C1").Select
End Sub
RAND関数を入れないだけで、あとの処理はするのでしょうか、それとも A列が空白の時は何もしないのでしょうか。
(川野鮎太郎)
いつもお世話になっています。 >あとの処理はするのでしょうか E列で並び替えをします。 現在の並び替えでは、5行しか入力していない時19行の並び替えをして 19行の間に空欄行ができますが、その空欄行をなくして、上段5行に表示させたいのです。 ご指導ください。(Ty)
これでいけますか。
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For Each c In Range("A2:A20")
With c.Offset(0, 4)
If c.Value <> "" Then
.Formula = "=RAND()"
Else
.ClearContents
End If
End With
Next c
Range("A2:E20").Sort Key1:=Range("E2")
Range("E2:E20").ClearContents
Application.ScreenUpdating = True
End Sub
(川野鮎太郎)
ありがとうございました。 できました。 今からじっくりと見比べます。 マクロって、英語で方程式を解くようなものですね。 (Ty)
川野さんのご回答で十分ですが、 ちょっと追加の質問をさせてください。 上記マクロは、2行目〜20行目のA列〜E列の範囲の並び替えですが、 2行目〜20行目の全列の並び替えはどのような書き方をするのでしょうか? (勉強中Ty)
私も勉強中の身ですが、以下のご近所PGさんのコメントが大変わかり易く参考になります。 [[20050115131721]]『条件式書式を6つやりたいんですが・・・』(sirouto)
今回の件をご近所さん的に言えば、 「さっきまではA2からE20までの範囲で並び替えしたぞ。」 「でも、今回は2行目から20行まで全部を並び替えたいんだよなぁ」 「どこを変えれば良いんだろぅ・・」 「とりあえずマクロの記録でやってみるか」 「まず2行目から20行目までを選択して、データ−並び替え−E列で並び替えを記録して マクロの記録終了」
VBEを開いてみるとこんなのが出てるぞ?
Sub Macro1()
' Macro1 Macro
' マクロ記録日 : 2005/1/17 ユーザー名 : Ayu
Rows("2:20").Select
Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
End Sub
さっきの鮎のコードでSortが並び替えだからここを変えれば良いんだな。
Range("A2:E20").Sort Key1:=Range("E2")
てことは、範囲がRange("A2:E20")だったものをRows("2:20")に変えてみるか。
Rows("2:20").Sort Key1:=Range("E2") こんな感じになったけど上手くいくかなぁ・・・。
゙(*・・)σ【マクロの実行】ぽちっとな♪
ぉお!!(゚ロ゚屮)屮 .。゚+.(゚ー゚)。+.゚ イイ!!上手くいったぞ〜♪
ってな感じでしょうか^^
(川野鮎太郎)
以前どこかで、川野さんがおっしゃってみえた「先ずマクロを記録して」という 言葉がこのことですね。 勉強の方法がようやくわかりました。ありがとうございました。(Ty)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.