ここから本文です

Excelを最近はじめ、マクロ、VBAについていろいろ調べ、いろんなサイトのマクロを...

tai********さん

2015/11/421:34:57

Excelを最近はじめ、マクロ、VBAについていろいろ調べ、いろんなサイトのマクロをつなげたり、自分で考えたりしてVBAを作ったのですが、赤文字になってしまって、できません、

どう直したらいいか教えてください。。。
また、一つの文が赤くなってしまって、そこをインターネットで調べ、治してもほかの文がまた赤くなってしまい、連鎖みたいになります。泣

やりたいことは、複数のExcelファイルのシート一枚目の"A1"だけを 新しく作成したExcelファイルのA列にA1.A2.A3...と下にコピーしていきたいです。
そこで、Cドライブの中にtestという名前のフォルダを作りその中に複数のExcelファイルを入れ(150個ぐらい)
このVBAを使おうかと思ったのですができません。
文のはじめに文行がわかりやすくするため番号を振りました。

①Sub test()
②Const Fol As String = "C:\test\"
③Dim Fn
④Dim NewFile As Workbook
⑤Dim Wb As Workbook
⑥Dim Ws1 As Worksheet
⑦Dim Ws2 As Worksheet
⑧Dim R As Range
⑨Set NewFile = Workbooks.Add
⑩Set Ws1 = NewFile.Worksheets(1)
⑪Set R = Ws1.Range("A1")
⑫Fn = Dir(Fol, vbNormal)
⑬Do Until Fn = ""
⑭Set Wb = Workbooks.Open(Fol & Fn)
⑮Set Ws2 = Wb.Worksheets(1)
⑯Ws2.Range("A1").Copy R
⑰Set R = R.End(xlDown).Offset(1)
⑱Wb.Close
⑲'Debug.Print Fn
⑳Fn = Dir
㉑Loop
㉒Set R = Nothing
㉓Set Ws1 = Nothing: Set Ws2 = Nothing
㉔Set Wb = Nothing: Set NewFile = Nothing
㉕End Sub

すると⑰の文が赤くなります。
わかるかた回答よろしくお願いします。
Excelはじめたばかりで無知なので詳しく教えていただけると幸いです。

閲覧数:
67
回答数:
1
お礼:
100枚

違反報告

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

clu********さん

2015/11/421:49:43

taitougaitibannさん

Set R = R.End(xlDown).Offset(1)

Set R = R.Offset(1)

Endプロパティはデータの入ってる最後の行や列を調べるのによく使われますが
今回は次の行に移るだけだから要りませんね。
R.End(xlDown).Offset(1)だと最終行のさらに1行下になっちゃうのでエラーになるのですね。

この回答は投票によってベストアンサーに選ばれました!

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

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

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

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

閉じる

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

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

閉じる