[[20041214124833]] 『次データの前まで下方コピー』(ひよっぴ) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『次データの前まで下方コピー』(ひよっぴ)

 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.