複数のダウンロードしたデータを下記のサンプルコードを使ってまとめてます。
結合まではうまくできてました。以下2点問題があります。
更に編集したいと思います。
初心者のため是非お力添えを頂きたく存じます。
■問題点
①開いてるExcelには2つの固定された名前のシート(合計)と(月別)があり2つとも結合してしまう。※月別だけのシートを結合したい。
②1行目には同じ項目名の(売上、販売量など)文字列がはいってますが
最初の1行目の文字列は残したまま結合時には初めの1行目をすべて削除して
2行目から結合したい。
①のシート名は固定となります。
②1行目の文字列は基本固定となり同じ文字列の複数データを結合することを想定してます。
Option Explicit
Sub folder()
If Application.FileDialog(msoFileDialogFolderPicker).Show = True Then
Range("b2").Value = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
End If
End Sub
Sub merge()
'シート[merge]を削除
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("merge").Delete
Application.DisplayAlerts = True
'シート[merge]を一番右に追加
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "merge"
'フォルダの場所を変数に入れる
Dim Folder_path
Folder_path = ThisWorkbook.Worksheets("folder").Range("b2").Value
'結合するブックを変数に入れる
Dim FileType
If Worksheets("folder").Range("b1").Value = "Excel" Then
FileType = "\*.xls*"
Else
FileType = "\*.csv"
End If
Dim MergeWorkbook
MergeWorkbook = Dir(Folder_path & FileType)
'指定したフォルダから、Excelファイルを探す
Do Until MergeWorkbook = ""
Workbooks.Open Filename:=Folder_path & "\" & MergeWorkbook
Dim MergeWorkbook_data '結合するブック内のシートのデータ数
Dim ThisWorkbook_data '結合先のシートのデータ数
Dim i
For i = 1 To Workbooks(MergeWorkbook).Worksheets.Count
MergeWorkbook_data = Workbooks(MergeWorkbook).Worksheets(i).Range("a" & Rows.Count).End(xlUp).Row
ThisWorkbook_data = ThisWorkbook.Worksheets("merge").Range("a" & Rows.Count).End(xlUp).Row
Workbooks(MergeWorkbook).Worksheets(i).Rows("1:" & MergeWorkbook_data).Copy ThisWorkbook.Worksheets("merge").Range("a" & ThisWorkbook_data + 1)
Next
'結合するブックを閉じる
Application.DisplayAlerts = False
Workbooks(MergeWorkbook).Close
Application.DisplayAlerts = True
'次のブックを探しに行く
MergeWorkbook = Dir()
Loop
End Sub
No.1ベストアンサー
- 回答日時:
①シート(合計)を結合したくない
For関数内にてシート名による除外判定を行えば良いと思います
IF Workbooks(MergeWorkbook).Worksheets(i).Name = "merge" then
Else
'合計シート以外の時のみ処理を行う
End If
②タイトル行を無視したい
『Rows("1:"~』先頭行を無視するのでここは1ではなく2ですね
お試しください
ご連絡いただきましてありがとうございます。
大変参考になりました。
超初心者なのでできれば下記のコードどこにいれればいいでしょうか
①シート(合計)を結合したくない
For関数内にてシート名による除外判定を行えば良いと思います
IF Workbooks(MergeWorkbook).Worksheets(i).Name = "merge" then
Else
'合計シート以外の時のみ処理を行う
End If
②タイトル行を無視したい
『Rows("1:"~』先頭行を無視するのでここは1ではなく2ですね
↑上記コードだとベースの1行目のタイトル行も消えてしまいます。
1行目のタイトル行を残したまま結合したタイトル行の2行目から
結合できる方法をご教授いただけますと助かります。
お手数ですがご教授よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
共役or非共役の見分け方
-
二酸化炭素の混成軌道の図を教...
-
カチオンとアニオンとは?
-
p軌道の「+」「-」とは?
-
選択クエリで空欄のテーブルが...
-
高校生です。 化学の質問です。...
-
化学の1次結合,2次結合について
-
アセトン
-
c2h2の電子式と構造式について...
-
結合次数の求め方(化合物)
-
アレンの分子軌道構造式
-
硫酸銅はなぜ5水和物3水和物1水...
-
硫酸銅五水和物について
-
ジクロロベンゼンの双極子モー...
-
オゾンの配位結合について
-
非局在化電子の有無判断 sp2,...
-
結合の強さについて。 N2+よりN...
-
グリコシド結合とエーテル結合...
-
毛糸への染色について
-
セルロースってなんでプラスチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
選択クエリで空欄のテーブルが...
-
カチオンとアニオンとは?
-
塩化ナトリウムはなぜ共有結合...
-
高校生です。 化学の質問です。...
-
セルを結合するマクロで表示さ...
-
エクセルで大きな括弧()の方法
-
共役or非共役の見分け方
-
科学反応式の結合手の数を教えて!
-
c2h2の電子式と構造式について...
-
π電子の数え方
-
配位数・配位子・配座数って
-
p軌道の「+」「-」とは?
-
FT-IRのピークの見方
-
アルデヒドとケトンが水素結合...
-
エクセルのツールバーのプルダ...
-
Excelで結合されたセルを参照し...
-
NO2はなぜイオンでないのですか
-
硫酸銅はなぜ5水和物3水和物1水...
-
エーテル結合とエステル結合の...
-
二酸化炭素の混成軌道の図を教...
おすすめ情報