Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12005 / 76734 ←次へ | 前へ→

【70257】複数ファイルから、特定のデータを抽出
質問  VBA初心者  - 11/10/24(月) 10:50 -

引用なし
パスワード
   こんにちは、VBA初心者です。
過去のファイルを管理しやすいように、VBAにて検索&表示画面を作ろうかと思ったんですが、うまくいきません。。
色々なサイトで紹介されているプログラミングを参考に、以下のコードを作成しました。

複数個ある、過去ファイルから条件に合う行をそれぞれ一行ずつコピーして一覧を作成したいのですが、フィルタまではうまく動くのですが、タイトル行を削除しようとするとエラーになります。
(下記プログラムで★の部分)
どうやら原因はtbl.Rows.Count の値が1になっているようなのですが、最後の「 Workbooks(b4Table.Name).Close SaveChanges:=False」をコメントアウトして、ファイルを表示してみるとタイトル行以外にも一行表示されています。。。

VBA上級者の皆様の力を貸して下さい。よろしくお願いします!
ちなみにExcel2007を使ってます。

Sub display()

Dim b4Table As Object
Dim fso As Object
Dim CasNo, Row As Integer
Dim CalNo As String

Set fso = CreateObject("Scripting.FileSystemObject")
Row = 7
Application.ScreenUpdating = False
  
   For Each b4Table In fso.GetFolder(ThisWorkbook.Path & "\before\").Files
  
    CalNo = "A" & Row
    
    Workbooks.Open Filename:=ThisWorkbook.Path & "\before\" & b4Table.Name
    
    If ActiveSheet.AutoFilterMode Then
      ActiveSheet.AutoFilterMode = False
    End If

    Workbooks(b4Table.Name).Worksheets(1).Range("1:500").AutoFilter _
    field:=5, Criteria1:=ThisWorkbook.Worksheets(1).Range("C2")
    Range(CalNo).CurrentRegion.Select
    Set tbl = Range(CalNo).CurrentRegion.SpecialCells(xlCellTypeVisible)
    MsgBox ("tbl.Rows.Count = " & tbl.Rows.Count)

      ★tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
      tbl.Copy ThisWorkbook.Worksheets(1).Range(CalNo)
      tbl.AutoFilter
   
     Workbooks(b4Table.Name).Close SaveChanges:=False
    
    Row = Row + 1
   Next

Application.ScreenUpdating = True

Set fso = Nothing

End Sub
2 hits

【70257】複数ファイルから、特定のデータを抽出 VBA初心者 11/10/24(月) 10:50 質問
【70261】Re:複数ファイルから、特定のデータを抽出 UO3 11/10/24(月) 17:06 回答
【70263】Re:複数ファイルから、特定のデータを抽出 kanabun 11/10/24(月) 17:32 発言

12005 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free