こんにちは
同じフォルダ内のブック1,2,3,4,5......の[インボイス]というシートの中の色付けているタイトルの下の各データを保存先ブックの指定した場所にコピー貼り付けをしたいのです。
保存先のフォーマットはそのまま維持していただきたいのです。
一応一部分のマクロコードが下記通りですが、どうやって改善したらよろしいでしょうか?
Sub まとめ()
Set fso = CreateObject("scripting.filesystemobject")
Set SH = ActiveSheet
Application.ScreenUpdating = False
SH.UsedRange.Offset(1).ClearContents
For Each f In fso.getfolder(ThisWorkbook.Path).Files
If InStr(f.Name, ThisWorkbook.Name) = 0 Then
With Workbooks.Open(f)
.Sheets(2).UsedRange.Offset(1).Copy SH.Cells(Rows.Count, 1).End(3).Offset(1)
.Close False
End With
End If
Next f
Application.ScreenUpdating = True
End Sub
No.1ベストアンサー
- 回答日時:
細かく見ていませんが、改善と言う事で
With Workbooks.Open(f) の前でThisWorkbook.Nameを排除しているのは分かりますが
もっと限定をした方が好ましいと思います。
例えば
If InStr(f.Name, ThisWorkbook.Name) = 0 and InStr(f.Name, "invoice") > 0 Then みたいに、場合によっては拡張子なども含める
必要ないかも知れませんが、開いている場合の想定も入れた方が良いと思います。
.Sheets(2).UsedRange.ですが、これはセルの塊を示します。
つまり、画像を見ると範囲が一致していません。(7列を5列に)
.Sheets(2).UsedRange.Offset(1).Copy SH.Cells(Rows.Count, 1).End(3).Offset(1)をどうするかですね。
UsedRangeを使うなら、あまり勧められませんが、ThisWorkbook 側のDとE列の間に2列挿入して表組みを変え
7列に合わせると言う考え方です。
または、UsedRangeを諦め、最終行取得して範囲を2つ抽出する方法をとるか、、、
CurrentRegion、SpecialCellsも画像を見る限り難しいかと思いますし、悩ましいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
アクセスvbaでエクセルブックを...
-
複数エクセルから特定シートの...
-
エクセルの関数 ENTERを押...
-
Excelでワークシートが挿入でき...
-
北九州市にあった「井筒屋ブッ...
-
エクセル:特定のブックのみ、...
-
WorkBooksをオープンさせずにシ...
-
【マクロ】【VBA】同じフォルダ...
-
エクセルで50行ごとに区切った...
-
【ExcelVBA】シートをそれぞれ...
-
エクセル2016です。「ブッ...
-
vbaでpdfを開いて1ページ目のみ...
-
ワードやエクセルで「時間が来...
-
VBA バックグラウンドで別ブッ...
-
Excelでブックの共有を掛けると...
-
エクセルにおける,「ブック」...
-
VBAでブック保護非保護を判定す...
-
エクセルを共有するとPCによっ...
-
複数ファイルから特定シートの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
Excel(2010)のフィルターが保...
-
フォルダ内の複数ファイルから...
-
Excelでブックの共有を掛けると...
-
複数ファイルから特定シートの...
-
エクセルで「ディスクがいっぱ...
-
Excelで複数ブックの同一セルに...
-
エクセルファイルを開かずにpdf...
-
エクセルで別ブックをバックグ...
-
エクセルで50行ごとに区切った...
-
外部ブック参照が#REF!になって...
-
エクセル2016です。「ブッ...
-
エクセルの関数について教えて...
-
エクセルシートの一部を送りたい
-
ブックのピボットを別ブックに...
-
Excel起動時に特定のワークシー...
おすすめ情報