準・究極の選択

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

A 回答 (1件)

wbはSub1、Sub2それぞれで定義していますので、名前は同じでも別の変数として扱われます。

Sub1でSetした値はSub2に引き継がれないのでエラーになるのではありませんか

Sub1でSetした値をSub2に引き継ぎたいなら
Dim wb As Workbook
Sub1()

End Sub

Sub2()

End Sub
のように変数を宣言してください。またはCallの時に引数としてwbを渡す方法もあります
    • good
    • 0
この回答へのお礼

ご回答、誠に有難うございました。

お礼日時:2007/03/28 23:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!