[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『次データの前まで下方コピー』(ひよっぴ)
A列にランダムに飛び飛びにデータが入っています。 行方向に上から、データが入っているセルはそのままで、 次にデータが入っているセルの上まで同じデータをコピーしたいのです。 過去にそのような質問があったと思い、検索しましたが見つけられませんでした。 期限が迫っていましたので、とり急ぎ手作業で、フィル→F2→Ctrl+Enterを3時間(泣) 数ヶ月ごとにこの作業をしなくてはいけないのですが、何かいい方法がありませんでしょうか。
>何かいい方法 作業の自動化ならマクロで可能です。 すぐに回答が付くと思いますので、少々お待ち下さい。 (INA)
当該列範囲を選択し、編集、ジャンプ、セル選択、空白セル、OKとして、数式バーに =入力し、アクティブセルの直ぐ上のセルを選択し、Ctrl+Enterとしますと、ひとつ上の セルがリンクできます。 (LOOKUP)
す、すごいですね...! 一瞬で出来ました! きっと、私が以前読んだのは、この方法だったのですね。 今度はなくさないようにメモ帳に貼り付けておきます! LOOKUPさん、有難うございました! INAさん、教えていただいた手順を記録マクロにとってみます。 有難うございました。。。 (ひよっぴ)
記録してみました。
Sub Macro1() Range("A5").Select ActiveWindow.ScrollRow = 320 Range("A5:A342").Select ActiveWindow.ScrollRow = 5 Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "=R[-1]C" End Sub それで、質問なのですが、Range("A5:A342").Selectの、A342はシートごとに違いますので、 データの入力された一番最後セルにしたいのですが、どうすればよいでしょうか。 (ひよっぴ)
こんな感じです。
MyLast = Range("A65536").End(xlUp).Address(0, 0) Range("A5").Select ActiveWindow.ScrollRow = 320 Range("A5:" & MyLast).Select ActiveWindow.ScrollRow = 5 Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "=R[-1]C"
視覚的に動きが判るのでSelectを残すってのもありますけど、Selectさせない方法なら Sub Test() MyAddress = Range("A65536").End(xlUp).Address(0, 0) Range("A5:" & MyAddress).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" End Sub
これだけでいけます。
(川野鮎太郎)
川野さん、有難うございます。 これだけでいけます、を実行してみましたら「コンパイルエラー:変数が定義されていません」と出ました。 何か定義しないとだめなのでしょうか? (ひよっぴ)
宣言の強制が入ってるんですね(^_^A; Option Explicit '変数の宣言を強制 Sub Test() Dim MyLast As String '変数の宣言 MyLast = Range("A65536").End(xlUp).Address(0, 0) Range("A5:" & MyLast).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" End Sub
あれれ?? さっきはMyAddressにしてたんですね。(^_^A; そのままなら、以下のようにしてみてください。
Option Explicit '変数の宣言を強制 Sub Test() Dim MyAddress As String '変数の宣言 MyAddress = Range("A65536").End(xlUp).Address(0, 0) Range("A5:" & MyAddress).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" End Sub
変数の名前は少しだけ決まりごとがありますが、基本的には自分のわかりやすい名前で良いと思います。 (川野鮎太郎)
沢山教えて下さって有難うございます。 それでは As ひよっぴ でもいいんですね。何だか嬉しいです。 有難うございました。 それから、ヘルプを見たらStringは文字列型と書かれていました。 Addressには数字が入るのに文字なのですね? 難しいですね。 (ひよっぴ)
いや・・・・ひよっぴでは怒られちゃうでしょ(^_^A; 少しだけ決まりごとがある中で ひよっぴ は含まれてません^^; Address は "A356" って文字のようですね。
( ̄0 ̄;アッ 試したら怒られなかった(T▽T)アハハ! でも、通常は 半角英字みたいです。 (川野鮎太郎)
> それでは As ひよっぴ でもいいんですね。 dim ひよっぴ As String なら大丈夫。
>Dim XXX As ひよっぴ という用法もあるけど、説明すると大変なことになるから省略します。 (INA)
VBAのヘルプより。 変数名には、文字 (英数字、漢字、ひらがな、カタカナ) とアンダスコア (_) を使うことができます。 スペースや記号は使えません。変数名の先頭の文字は、英字、漢字、ひらがな、カタカナのいずれかでなければなりません。 同一適用範囲 (スコープ) 内で同じ変数名を複数使うことはできません。 また、変数名の長さは、半角で 255 文字以内でなければなりません。
ですって^^ (川野鮎太郎)
INAさん、川野さん、有難うございます。 英語以外の字が使えるのでしたら、親しみがわきますね! 「変数」「変数名」をキーワードにしてヘルプしても検索できませんでした。 ヘルプ検索のコツがどこかに書いているといいのですが... わからないので、web検索してたどり着いたところを読んでいます。 http://www.mahoutsukaino.com/ac/ac2002/vba/vba08/v08.htm 昨日も日が暮れましたが、今日も日がくれそうです(笑) いずれにしましても、色々と御指導ありがとうございました。 (ひよっぴ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.