|
>neptune さん
ご回答ありがとうございます!
頑張りました(*^-^*)
再度現状のコードを載せさせてください。
マスタのブックのWorkbookモジュールの所に
Dim i As Integer, k As Integer
Dim ws3 As Object
ChDir "C:\Documents and Settings\デスクトップ"
Workbooks.Open Filename:= _
"C:\Documents and Settings\デスクトップ\hoge.xls", UpdateLinks:=0
ChDir "C:\Documents and Settings\デスクトップ"
Workbooks.Open Filename:= _
"C:\Documents and Settings\デスクトップ\hogehoge.xls", UpdateLinks:=0
として、マスタ以外の2つのブックを開くように指定。
※Workbookモジュールにはこれ以上の記載はありません。
※"wApp"は使用せず、マクロの記録をそのまま貼ることにしました。
そしてマスタのシートも変更しました。
Dim tBK1 As Workbook
Set tBK1 = 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 = tBK1.Worksheets("sheet1")
Set ws3 = tBK1.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で参照し、
それに付随する数値をhoge.xlsのsheet1とsheet2から
引っ張ってきて反映するようにしているつもりです。
※sheet1とsheet2は各々データベース的イメージです。
今はインデックスが有効範囲にない、と怒られています。
|
|