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

VBA初心者です。よろしくお願いします。
外部データの取入れで取得したデータを必要なだけコピーして使いたいのですが、毎回データの量が増えてきます。増えても増えた分だけ増やしていける方法はありませんか?
データの最後から100個分だけ範囲指定してコピーしたいのです。
それと外部データを取り込んだときにマクロを実行したいのですがよろしくお願いします。

A 回答 (3件)

No1です。


GYOU = Range("A65536").End(xlUp).Row
の説明しておきます
Range("A65536")  はエクセルで使用できるシートの最大行数
End(xlUp) は、最大行から上方向へ移動でして空白で無い行へ
Row    は、その行番号です。
質問に、データの最後の行からとありますので、必要では。
コマンドの意味を理解してみてください。
貼り付ける側でも、使用すると思います。
    • good
    • 0
この回答へのお礼

不幸があり遠方へ出かけておりました。遅くなりましたが
ありがとうございました。
プログラムを理解することが出来ました。
おかげさまで便利に使うことが出来ますた。

お礼日時:2008/01/09 15:05

こんにちは。



データの最後から100個分という意味が良く分からないです。100行分ということではないのでしょうか?

>外部データを取り込んだときにマクロを実行したい

というのは、Excelが外部に抜けるので、マクロが待機状態にはなったとしても、その時にイベントが働かないので、無理というか、そういうマクロをわざわざ考える人はいないと思います。外部データ自体の取り込むマクロを考えるのが自然だと思います。

>取得するsheets名を指定しなければいけないのでしょうか?

マクロが標準モジュールにある限りは、必要ないとは思います。
以下は、100行の場合

例:
Sub Test1()
Dim r1 As Range
Dim r2 As Range
Dim r As Range
 Set r1 = Range("A65536").End(xlUp)
 Set r2 = r1.End(xlUp)
 If r1.Row - r2.Row = 0 Then
  MsgBox "データがありません。", 48
  Exit Sub
 ElseIf r1.Row - r2.Row < 100 Then
  Set r = Intersect(ActiveSheet.UsedRange, Range(r1, r2).EntireRow)
  r.Select
  'r.Copy Worksheets("Sheet2").Range("A65336").End(xlUp).Offset(1)
 Else
  Set r = Intersect(ActiveSheet.UsedRange, Range(r1, r1.Offset(-100)).EntireRow)
  r.Select
  'r.Copy Worksheets("Sheet2").Range("A65336").End(xlUp).Offset(1)
 End If
End Sub
    • good
    • 0
この回答へのお礼

判りやすく、ありがとうございました。

お礼日時:2007/12/29 16:32

データの最終行を取得する方法ですが


Range("A65536").End(xlUp)
で可能です。
以下は、
'データの最終の行の1列目から、5行下の5列目までをコピィ

GYOU = Range("A65536").End(xlUp).Row
Range(Cells(GYOU, 1), Cells(GYOU - 5, 5)).Copy

'Sheet2の最終行より1行上から貼り付けです。
参考にして下さい。

Sheets("Sheet2").Select
Range("B65536").End(xlUp).Offset(1,0).Select
ActiveSheet.Paste

この回答への補足

ありがとうございます。
貼り付けて実行しました。.Endでコンパイルエラーになります。
取得するsheets名を指定しなければいけないのでしょうか?

補足日時:2007/12/29 13:30
    • good
    • 0
この回答へのお礼

ごめんなさい。
回答への補足を書きましたが、今、欲しいデータ数に書き換えて、やってみましたら、きちんとできましたありがとうございました。
Range("A65536").End(xlUp)これはいらなかったのですね。
助かりました!!!

お礼日時:2007/12/29 14:09

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