|
いよいよ集大成。
1つのブックにシートが大量になってしまったため、
マスタとその他2つの計3つに分けました。
しかし、今まで動いていたマクロが動かなくなりました。
マスタのブックのWorkbookモジュールの所に
Dim wApp1 As Excel.Application, wApp2 As Excel.Application
Set wApp1 = New Application
wApp1.Visible = True
wApp1.Workbooks.Open "C:\Documents and Settings\デスクトップ\hoge.xls"
Set wApp2 = New Application
wApp2.Visible = True
wApp2.Workbooks.Open "C:\Documents and Settings\デスクトップ\hogehoeg.xls"
として、マスタ以外の2つのブックを開くように指定しました。
そしてマスタのブックには
Private Sub test1()
Dim wApp1 As Workbook
On Error Resume Next
Set wApp1 = Workbooks("C:\Documents and Settings\デスクトップ\hoge.xls")
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, i As Long
'処理対象のシートを明確にするために変数にセット
Set ws1 = ThisWorkbook.Worksheets("マスタ")
Set ws2 = wApp1.Worksheets("sheet1")
Set ws3 = wApp1.Worksheets("sheet2")
'変数を作成
Dim AB As Long, BA As Long
'SUMIFで合計する
i = 8
With ActiveSheet
Do Until .Cells(i, 6).Value = ""
AB = Application.WorksheetFunction.SumIf _
(ws2.Range("C7:C441"), ws1.Range("F" & i).Value, ws2.Range("E7:E441"))
BA = Application.WorksheetFunction.SumIf _
(ws3.Range("C7:C47"), ws1.Range("F" & i).Value, ws3.Range("F7:F47"))
If AB > BA Then
ws1.Range("G" & i).Value = AB - BA
ElseIf AB < BA Then
ws1.Range("G" & i).Value = BA
End If
i = i + 1
Loop
End With
End Sub
としました。
マスタと同じ内容のセルをhoge.xlsのsheet1とsheet2から探し出し、
マスタに反映させる、というものです。
一切数字が反映されなくなってしまったのですが、
コード自体が間違っているのでしょうか?
というか、マスタ以外の2つのブックが永遠に開かれていくという罠に陥っておりますが。
|
|