Excel VBA質問箱 IV

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

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


1448 / 13645 ツリー ←次へ | 前へ→

【74421】別ブックから該当データの有無を検索し、必要なデータを取得する方法につい... まんぞう 13/6/5(水) 10:17 質問[未読]
【74422】Re:別ブックから該当データの有無を検索し... UO3 13/6/5(水) 16:13 発言[未読]

【74421】別ブックから該当データの有無を検索し、...
質問  まんぞう E-MAIL  - 13/6/5(水) 10:17 -

引用なし
パスワード
   各都道府県(北海道.xls 青森県 岩手県 ・・・)のブックが47個あります。

各都道府県のブックのSheet名は ”売上”で統一。

A列に商品名、B列に売上個数が入力してあります。
 A列     B列        
1 商品名   売上個数
2 ジャケット 10  
3 スカート  100
  ↑↑↑↑↑↑↑↑
売上があった場合のみ表示されている

やりたいことは、
各都道府県別のファイルごとに売上のあった商品名・売上個数を
「統一.xls」へ貼り付けしたいのです。

個々のファイルを起動するのではなく、マクロで処理を希望します。


自分では、一つ一つのファイルを起動しコピーして貼り付けています。

マクロで売上がある場合のみ貼り付ければよいかと思い、書いてみたんですが…

検索しても、売上のある場合の時のコードをどうやって取得すればいいのかが、わかりませんでした。

どうぞよろしくお願いします。

【74422】Re:別ブックから該当データの有無を検索...
発言  UO3  - 13/6/5(水) 16:13 -

引用なし
パスワード
   ▼まんぞう さん:

こんにちは

統一.xls が開かれた状態で実行。
統一.xlsの"Sheet1" に集約しています。
集約シートにはあらかじめ、1行目にタイトル行をセットしておいてください。

Sub Sample()
  Dim myPath As String
  Dim fName As String
  Dim tSh As Worksheet
  Dim fSh As Worksheet
  Dim wb As Workbook
  
  Application.ScreenUpdating = False
  
  myPath = "c:\TEST\" '県別ブックが入っているフォルダパス。★実際のものに。
  Set tSh = Workbooks("統一.xls").Sheets("Sheet1")   '集約シート名 ★実際のものに
  With tSh.Range("A1").CurrentRegion
    Intersect(.Cells, .Offset(1)).ClearContents
  End With
  fName = Dir(myPath & "*.xls")
  
  Do While Len(fName) > 0
    Set wb = Workbooks.Open(myPath & fName)
    Set fSh = Nothing
    On Error Resume Next
    Set fSh = wb.Sheets("売上")
    On Error GoTo 0
    If Not fSh Is Nothing Then
      With fSh.Range("A2", fSh.Range("A" & fSh.Rows.Count).End(xlUp))
        tSh.Range("A" & tSh.Rows.Count).End(xlUp).Offset(1).Resize(.Rows.Count, 2).Value = .Value
      End With
    End If
    wb.Close False
    fName = Dir()
  Loop
      
  Application.ScreenUpdating = True
  MsgBox "終了"
  
End Sub

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