2種類のブックのデータを → 追加した1つのブックに貼り付けます。
下記 「'------ここからエラーになる----」 からエラーになります。
エラー番号
91
「オブジェクト変数またはWith ブロック変数が設定されていません」
以上 下記コードのチェックをお願い致します。
------------------------------
Sub tes1()
Dim fWord As String, fAdd, c, wb As Workbook
fWord = "1"
Set wb = Workbooks.Add(xlWBATWorksheet)
Workbooks("ああ.CSV").Activate
Rows("1:1").Select
Selection.Insert Shift:=xlDown
With Workbooks("ああ.CSV").Worksheets(1).Range("F:F")
Set c = .Find(fWord, LookIn:=xlValues)
If Not c Is Nothing Then
fAdd = c.Address
Do
c.Offset(0, 2).Resize(8, 1).Copy
wb.Worksheets(1).Range("B65536").End(xlUp). _
Offset(1, 0).PasteSpecial Paste:=xlAll, _
Transpose:=True
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> fAdd
End If
End With
Application.CutCopyMode = False
Call tes2
End Sub
'--------------------
Sub tes2()
Dim aWord As String, aAdd, c, wb As Workbook
aWord = "1"
Workbooks("いい.CSV").Activate
With Workbooks("いい.CSV").Worksheets(1).Range("A:A")
Set c = .Find(aWord, LookIn:=xlValues)
If Not c Is Nothing Then
aAdd = c.Address
Do
c.Offset(0, 23).Resize(1, 1).Copy
'------ここからエラーになる------------------------
wb.Worksheets(1).Range("B65536").End(xlUp). _
Offset(1, 0).PasteSpecial Paste:=xlAll, _
Transpose:=True
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> aAdd
End If
End With
Application.CutCopyMode = False
End Sub
wbはSub1、Sub2それぞれで定義していますので、名前は同じでも別の変数として扱われます。Sub1でSetした値はSub2に引き継がれないのでエラーになるのではありませんか
Sub1でSetした値をSub2に引き継ぎたいなら
Dim wb As Workbook
Sub1()
End Sub
Sub2()
End Sub
のように変数を宣言してください。またはCallの時に引数としてwbを渡す方法もあります
お礼
ご回答、誠に有難うございました。