- 締切済み
複数ファイルのA1だけを抽出して別ファイルにしたい
すみませんが、教えてください。 特定のフォルダ内に入っているcsvのA1列目のみ抽出して別ファイルにしたく、検索したところ 同じように困っていた方がいたようで、参考にさせていただいたのですが、 以下を実行しても インデックスが有効範囲にありませんと出ます。 各csvファイルのシート名は 1000近くあるファイル全て違い、別々の名前(コード00-000とか)になっています。 (エクセルで開いたとき) お手数ですが、教えていただきたくお願いいたします。 参考にしたマクロです。 Sub macro1() Dim myPath As String Dim myFile As String myPath = "ファイルの場所\" myFile = Dir(myPath & "*.xls") Do Until myFile = "" Workbooks.Open myPath & myFile With Workbooks("集約.xls").Worksheets("Sheet1").Range("A65536").End(xlUp) .Offset(1, 0).Value = myFile .Offset(1, 1).Value = Workbooks(myFile).Worksheets("概要").Range("C3").Value End With Workbooks(myFile).Close savechanges:=False myFile = Dir() Loop End Sub 宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- goohiroko
- ベストアンサー率61% (51/83)
タイトルと質問文と記述されているマクロとで微妙にズレがあるので、 やろうとされている内容の条件が今ひとつはっきりわからないのですが。 仮に、 ・あるフォルダ内に入っている複数のcsvファイルのA1セルの内容のみを抽出して別ファイルにリスト作成したい。 ・リストを作成する別ファイルは「集約」.xlsで、リストの作成先シート名は「概要」 (マクロはこのファイルに記述) ・各csvファイルのシート名はファイルごとに異なる として、少し直してみました。 Sub macro1() Dim myPath As String Dim myFile As String myPath = "ファイルの場所\" myFile = Dir(myPath & "*.csv") Do Until myFile = "" Workbooks.Open myPath & myFile With Workbooks("集約.xls").Worksheets("概要").Range("A65536").End(xlUp) .Offset(1, 0).Value = myFile mys = Workbooks(myFile).Sheets(1).Name .Offset(1, 1).Value = Workbooks(myFile).Worksheets(mys).Range("C3").Value End With Workbooks(myFile).Close savechanges:=False myFile = Dir() Loop End Sub