Excel VBA 質問スレッド No.57 (未解決)

複数のエクセルファイルからデータ抽出

投稿者 : ようじ     投稿日時 : 2019/03/15(Fri) 11:32:55     OS : Windows 10     EXCEL : 未指定
・ある一つのExcelファイル(テスト一覧VBA)に複数のExcelファイルのデータを抽出し、まとめたいです。

B2(抽出先) = B5(抽出元、B5からE5まで結合されています)
C2(抽出先) = P9(抽出元)
D2(抽出先) = P16(抽出元)
E2(抽出先) = P23(抽出元)
F2(抽出先) = P30(抽出元)

・抽出先のExcelファイルは複数あり、これから増える予定。
・抽出先のExcelファイルが増えるごとに下記の用に下にずれて抽出元に(テスト一覧VBA)VBAに抽出させます。
B3(抽出先) = B5(抽出元、B5からE5まで結合されています)
C3(抽出先) = P9(抽出元)
D3(抽出先) = P16(抽出元)
E3(抽出先) = P23(抽出元)
F3(抽出先) = P30(抽出元)


・下記のVBAを組んだらデータが抽出されませんでした。上記のようなVBAを組むにはどう修正していけば良いでしょうか。

Sub 経費データ収集()
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim pass As String
pass = ThisWorkbook.Path & "\個人名簿"
Dim fullname As String '氏名
Dim i As Long, j As Long '2019の行数,昇給評価の行数
j = 2
Dim f As file
For Each f In fso.GetFolder(pass).Files
With Workbooks.Open(f)
With .Worksheets(1)
fullname = .Range("B5").Value '氏名

i = 16
Do While .Cells(j, 1).Value <> ""
昇給評価.Cells(j, 2).Value = fullname '氏名
昇給評価.Cells(j, 3).Value = .Cells(i, 9).Value '勤怠
昇給評価.Cells(j, 4).Value = .Cells(i, 16).Value '顧客評価
昇給評価.Cells(j, 5).Value = .Cells(i, 23).Value '努力目標
昇給評価.Cells(j, 6).Value = .Cells(i, 30).Value '貢献度
j = j + 1
Loop
End With
.Close
End With
Next f
End Sub


参考
https://www.atmarkit.co.jp/ait/articles/1804/11/news003.html

[返信 1] Re : 複数のエクセルファイルからデータ抽出
投稿者 : 田中     投稿日時 : 2019/03/15(Fri) 19:30:36
単純に抽出元の参照セルが間違っている(行と列が逆になっている)だけではないでしょうか?

すなわち、下記の行を

昇給評価.Cells(j, 3).Value = .Cells(i, 9).Value '勤怠
昇給評価.Cells(j, 4).Value = .Cells(i, 16).Value '顧客評価
昇給評価.Cells(j, 5).Value = .Cells(i, 23).Value '努力目標
昇給評価.Cells(j, 6).Value = .Cells(i, 30).Value '貢献度



昇給評価.Cells(j, 3).Value = .Cells(9, i).Value '勤怠
昇給評価.Cells(j, 4).Value = .Cells(16, i).Value '顧客評価
昇給評価.Cells(j, 5).Value = .Cells(23, i).Value '努力目標
昇給評価.Cells(j, 6).Value = .Cells(30, i).Value '貢献度

と修正してみてください。

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2019-07-18 02:25:22 )

Page
Top