ここから本文です

○の部分に”下から10行3列をコピーする”という風に入れたいのですがどのように書け...

ryu********さん

2010/1/1620:40:35

○の部分に”下から10行3列をコピーする”という風に入れたいのですがどのように書けばよいのでしょうか?

Dim Files, FilesCnt As Integer, i As Integer
Dim cBook As Workbook, pBook As Workbook
Files = Application.GetOpenFilename _
(FileFilter:="Data File(*.*), *.*", MultiSelect:=True)
If IsArray(Files) Then
Set pBook = Workbooks.Add(xlWBATWorksheet)
FilesCnt = UBound(Files)
For i = 1 To FilesCnt
Workbooks.OpenText Files(i)
Set cBook = ActiveWorkbook
cBook.ActiveSheet.○.Copy
With pBook.ActiveSheet
.Cells(1, .Range("XFD1").End(xlToLeft).Column). _
PasteSpecial (xlPasteAll)
End With
Application.CutCopyMode = False
cBook.Close
Next i
End If
Set cBook = Nothing: Set pBook = Nothing
End Sub

閲覧数:
321
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

nek********さん

2010/1/1715:31:32

こんにちは。

開いたブックのアクティブシートの
A:Cの下から10行を抜き出すと言う風に書き直しました。
どうでしょうか?

Sub sample()
Dim Files, FilesCnt As Long, i As Long
Dim cBook As Workbook, pBook As Workbook
Dim R As Range, rowCount As Long '追加

Files = Application.GetOpenFilename _
(FileFilter:="Data File(*.*), *.*", MultiSelect:=True)

If IsArray(Files) Then
Set pBook = Workbooks.Add(xlWBATWorksheet)
FilesCnt = UBound(Files)
For i = 1 To FilesCnt
Workbooks.OpenText Files(i)
Set cBook = ActiveWorkbook
rowCount = cBook.ActiveSheet.Range("A" & cBook.ActiveSheet.Rows.Count).End(xlUp).Row '先に最終行を求めて
Set R = cBook.ActiveSheet.Range("A" & rowCount - 9).Resize(10, 3)
'最終行から9行マイナスしたところから、10*3というサイズを切り出す。
R.Copy
With pBook.ActiveSheet
.Cells(1, .Range("XFD1").End(xlToLeft).Column).PasteSpecial (xlPasteAll)
End With
Application.CutCopyMode = False
cBook.Close False
Next
End If
Set cBook = Nothing: Set pBook = Nothing
End Sub

質問した人からのコメント

2010/1/17 15:46:33

感謝 うまくできました。
先に最終行を求めておくとわかりやすいですね。
Resizeの意味もやっとわかりました。ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる