電子書籍の厳選無料作品が豊富!

A2:B2にコピーさせたい関数があります。

シートのデータ量は毎日変わるため、C列の最終行(例えばC157)を見て、
A2:B2の関数をA3:B157まで貼り付けする方法が分かりません。

VBA超初心者です。

何とぞご教授よろしくお願いいたします。

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

  • うーん・・・

    今現在は以下のプログラムを入れています。
    C列最下位行横のA157:B157にしかコピーされません。

    Range("A2:B2").Select
    Selection.Copy
    Range("A3").Select

    lastrow = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row
    ActiveSheet.Cells(lastrow + 0, 1).PasteSpecial Paste:=xlPasteFormulas
    Application.CutCopyMode = False

      補足日時:2018/03/13 09:40

A 回答 (7件)

こんにちは。


「ActiveSheet.Cells(lastrow + 0, 1).PasteSpecial Paste:=xlPasteFormulas」ここで指定しているセルが一つなのでコピーが1行にしかされないのだと思いますよ。

コピー先の範囲を指定してあげるとうまくいくと思います。
range(Cells(3, 1),Cells(lastrow + 0, 2))みたいに。
    • good
    • 0
この回答へのお礼

変数を使おうかとも考えましたが、シンプルでしっかりと理解が出来ましたので、
ご提案いただいたものを採用させていただきました。
本当にありがとうございました。

お礼日時:2018/03/13 16:49

こんにちは!



すでに色々回答は出ていますので、参考程度で・・・

Sub Sample1()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "C").End(xlUp).Row
Range(Cells(3, "A"), Cells(lastRow, "A")).Formula = Range("A2").Formula
Range(Cells(3, "B"), Cells(lastRow, "B")).Formula = Range("B2").Formula
End Sub

でも大丈夫だと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

まだまだ初心者なので、Formulaの使い方が参考になりました。
ありがとうございました。

お礼日時:2018/03/13 16:53

No.3さん、「マクロの記録」!そうですよね。


本当にその機能にお世話になりました。
    • good
    • 0

フィルダウンでも宜しければ。



Range("A2:B2").AutoFill Destination:=Range("A2", Range("C2", Cells(Rows.Count, 3).End(xlUp)).Offset(, -1).SpecialCells(xlCellTypeBlanks)), Type:=xlFillDefault
    • good
    • 0
この回答へのお礼

フィルダウン?
後ほどどのような動きになるのか、勉強させていただきます。
本当にありがとうございました。

お礼日時:2018/03/13 16:54

No.1です。



No.2,3さん
勉強させていただきました。

主さんは急ぎマークがついている割には反応ないですね
    • good
    • 0
この回答へのお礼

すみません。
全然回答できず、さきほど皆様の内容を確認させていただき、
動作確認しました。
こんなに迅速に対応していただける方がたくさんいて、申し訳ないです。。。

お礼日時:2018/03/13 16:52

こんにちは



ご説明の文章の内容をそのままを行えば良さそうですが…

lastRow = Cells(Rows.Count, 3).End(xlUp).Row
Range("A2:B2").Copy
Range("A3:B" & lastRow).PasteSpecial Paste:=xlPasteFormulas

同様の操作を手作業で行ってみて、マクロの記録などを参考にすると、当面は役に立つかも知れません。
    • good
    • 0
この回答へのお礼

lastrowの使い方、そんな方法もあるんですね。
サンプルで勉強させていただきました。
ベストアンサーつけられずに申し訳ございません。
でも、この使い方は今後に役立つと思いました。
ありがとうございました。

お礼日時:2018/03/13 16:51

詳しくはないのですが、



do while(Cxにデータがある)
みたいなので回せばいいのでは?

もしくは最初からC列に値があるかどうかで結果を変えるifを式に組み入れ、A,B列すべてに書いておくとか。(ファイルがでかくなる難点あり)


なにかヒントになればとおもいコメントしてみました。
    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。
もう少し腕を上げてから、IF文を使ったマクロに使用可と思います。
ありがとうございました。

お礼日時:2018/03/13 16:48

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