こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数のエクセルファイルとシートからデータ抽出したい

以前に http://soudan1.biglobe.ne.jp/qa8369459.html
でやられている内容なのですが、私の場合はシートすべての[i4」のセル値を一覧でひっぱりたいです。
keithinさんご回答の

sub macro1()
 dim myPath as string
 dim myFile as string
 dim w as worksheet

 mypath = thisworkbook.path & "\"
 myfile = dir(mypath & "*.xls*")
 application.screenupdating = false
 do until myfile = ""
  if myfile <> thisworkbook.name then
   workbooks.open mypath & myfile
   for each w in workbooks(myfile).worksheets
   with thisworkbook.worksheets("Sheet1").range("A65536").end(xlup).offset(1)
    .value = myfile
    .offset(0, 1) = w.name
    .offset(0, 2).value = w.cells(w.rows.count, "C").end(xlup).value
             ↑をRange("i4").Value  
   end with
   next
   workbooks(myfile).close false
  end if
  myfile = dir()
 loop
 application.screenupdating = true
end sub
にて実施しましたが、ファイル名・シート名は正確に抽出するものの
参照したい「i4」のデータが先頭のシートのi4だけを拾ってしまいます

1.xls、2.xls、3xlsがありそれぞれ名前がばらばらなシート「あ」、「い」、「う」の3つがある。2.xlsには「え」、「お」、「か」のしーとがあると仮定、マクロを実行すると、一覧のエクセルに

1、xls  あ  あのシートi4の値
1、xls  い  あのシートi4の値
1、xls  う  あのシートi4の値
2.xls  え  えのシートi4の値
2.xls  お  えのシートi4の値
2.xls  か  えのシートi4の値

子のようなか形で出力されます
い のところには いのシートのi4が、う のところには うのシートのi4が、
抽出されるには構文をどう買えればよいのでしょうか

投稿日時 - 2017-01-15 02:11:39

QNo.9281385

困ってます

質問者が選んだベストアンサー

>    .offset(0, 2).value = w.cells(w.rows.count, "C").end(xlup).value
>             ↑をRange("i4").Value  

Range("i4").Valueは、ActiveSheet.Range("i4").Valueと同意。
w.Range("i4").Valueとしてください。

投稿日時 - 2017-01-15 10:23:29

お礼

完璧です。ありがとうございました。
これで月曜日に何の問題もなく出社できそうです。
助かりました。

投稿日時 - 2017-01-15 17:27:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問