ここから本文です

VBAの質問です。初歩的なのですが、 B列の入力最終行までのデータを1つの命名し...

アバター

ID非公開さん

2018/8/2215:44:18

VBAの質問です。初歩的なのですが、
B列の入力最終行までのデータを1つの命名したファイルに入力し保存したいです。下記参考にしているコードだと、1行ずつ保存されるため、修正いただけますと幸いです。

■行いたいこと
・コピー元のデータ:N6列~AV6列以降のX行(B列の最終入力行)まで
・出力名称はB3に記載(日付ありの入力形式)で保存
------------------------------------

Sub sample()

Dim ws As Worksheet
Dim lastRow As Long
Dim r As Long
Dim wb As Workbook
'
Set ws = Sheets("2")
lastRow = ws.Range("B" & Rows.Count).End(xlUp).Row
For r = 6 To lastRow
Set wb = Workbooks.Open("C:~~~~\" & Range("B1").Value)
ws.Range("N" & r, "AS" & r).Copy Range("B6")
wb.SaveAs "C:~~~~\" & Range("B3").Value
wb.Close False
Next
End Sub
------------------------------------

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
17
回答数:
1
お礼:
250枚

違反報告

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

プロフィール画像

カテゴリマスター

tra********さん

リクエストマッチ

2018/8/2216:03:44

未実行です。試してください。

1)
Dim r As Long



削除

2)
For r = 6 To lastRow
Set wb = Workbooks.Open("C:~~~~\" & Range("B1").Value)
ws.Range("N" & r, "AS" & r).Copy Range("B6")
wb.SaveAs "C:~~~~\" & Range("B3").Value
wb.Close False
Next





Set wb = Workbooks.Open("C:~~~~\" & Range("B1").Value)
ws.Range("N6:AS" & lastRow).Copy Range("B6")
wb.SaveAs "C:~~~~\" & Range("B3").Value
wb.Close False

アバター

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

2018/8/22 16:36:18

迅速なご回答ありがとうございます!
早速修正反映してみたところ、希望の通り、動きました。
ありがとうございます!

この質問につけられたタグ

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

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

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

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

閉じる

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

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

閉じる