[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数ブックのテーブルをひとつのシートに結合』(ほたて)
ひとつのフォルダに集約した複数のブックを、指定のひとつのシートに集約する方法を考えているのですが、なかなかうまくいきません。
Dim sFile As String
Dim sWB As Workbook
Dim dWS As Worksheets
Dim sh As Worksheet
Dim lr As Long, tlr As Long
Const SOURCE_DIR As String = "C:\Users\admin\Desktop\アンケート\アンケート集約場所\"
Const DEST_FILE As String = "C:\Users\admin\Desktop\アンケート\集約.xlsm"
'指定したフォルダ内にあるブックのファイル名を取得
sFile = Dir(SOURCE_DIR & "*.xls")
'フォルダ内にブックがなければ終了
If sFile = "" Then Exit Sub
'集約先のブック
Set sh = DEST_FILE
'コピー元のブックを開く
Set sWB = Workbooks.Open(Filename:=SOURCE_DIR & sFile)
'コピー元の「Table」シートをsWSとする
Set sWS = sWB.Worksheets("Table")
For Each sWS In Worksheets
If sWS.Name <> "集約" Then
lr = sWS.Cells(sWS.Rows.Count, 1).End(xlUp).Row
sWS.Rows("1:" & lr).Copy
tlr = sh.Sheets("集約").Cells(sh.Rows.Count, 1).End(xlUp).Row
sh.Sheets("集約").Range("A" & tlr + 1).PasteSpecial
Applocation.CutCopyMode = False
End If
Next
End Sub
sh.Sheets("集約")のところでコンパイルエラーで「メソッドかデータメンバーが見つかりません」と出てします。
よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
>sh.Rows.Count
shブックの行数となってますよ。 (とおりすがり) 2016/07/30(土) 09:00
↑は勘違いでした。
↓がおかしいですね。
>sh.Sheets("集約") (とおりすがり) 2016/07/30(土) 09:07
> Dim sh As Worksheet
としてるのに、
> '集約先のブック > Set sh = DEST_FILE
となってますね。 一度落ち着いてコード全体の整合性を確認したら いいと思います。 (とおりすがり) 2016/07/30(土) 09:17
Q&Aサロンとマルチポスト (マルチーズ) 2016/07/30(土) 09:27
>Applocation.CutCopyMode = False
↑もおかしい。
×Applocation
○Application (とおりすがり) 2016/07/30(土) 09:40
'集約先のブック
> Set sh = DEST_FILE
を
'集約先のブック
> sh = Dir(DEST_FILE,0)
としてみました。この処理をすれば大丈夫でしょうか?
ただ、
sh.Sheets("集約") のコンパイルエラーは変わらずです...。
(ほたて) 2016/07/30(土) 10:24
まずは、3)がおかしいです。
4)も、いまのままだと、ひとつのファイルを処理して終わり?
>For Each sWS In Worksheets
でなく、Do…Loopを使います。
1)'指定したフォルダ内にあるブックのファイル名を取得
2)'フォルダ内にブックがなければ終了
3)'集約先のブックを開き、その集約シートを変数shにセット
4)xlsがなくなるまで、Do…Loopで以下を繰り返し
5)'コピー元のブックを開く
6)'コピー元の「Table」シートをsWSとする
7)sWSからshにコピペ
8)sWBを閉じる
(マナ) 2016/07/30(土) 10:29
横から失礼。
集約先に関したことに限定してコメントします。
> '集約先のブック > > Set sh = DEST_FILE > を > '集約先のブック > >sh = Dir(DEST_FILE,0) > としてみました。この処理をすれば大丈夫でしょうか?
No good. それだと shは何なる文字列ですよ。 まず集約先のブックは開かれているのですか?
必要なのは集約先のブックの"集約"シートなんですから、
・ブックを開いて、 ・その"集約"シートを Setキーワードで指定する 必要があります。
順を追っていけば、そう難しいことではないです。 単に慣れていないだけです。
(γ) 2016/07/30(土) 10:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.