2016-04-05 4 views
-1

このようなマクロを書いたのは初めてではありませんが、これをどのように動作させるかはわかりません。私はは動作しなければならないと思っています。オブジェクト変数またはでブロック変数エラーメッセージが設定されていません:Excel 2013 VBAでランタイムエラー91が発生することなく、ActiveWorkbook/Workbooks(名前)を使用するにはどうすればよいですか?

私の問題は私の仕事の日の初めにスニップが一度正確働いている間が、その後、私はいつもランタイムエラー'91を得るということです。

私は2つのワークブックを開いていて、マクロを開始する前にを手作業でとしたいワークブック内のセルを選択しました。

Option Explicit 
Sub test() 

Dim source, sheet As Worksheet 
Dim sourcename As String 
Dim targetname As String 
Dim test As Workbook 
Workbooks("Test.xlsm").Activate 
test = ActiveWorkbook 
Debug.Print (test.Name) 

sourcename = "Tabelle1" 
targetname = "Tabelle2" 

Set sheet = ActiveWorkbook.Worksheets(sourcename) 
Set source = ActiveWorkbook.Worksheets(targetname) 

Debug.print(sheet.Name) 
Debug.print(source.Name) 

End Sub 

エラーがtest = ActiveWorkbook

EDIT含む行で発生初期Setエラーが修正された後を、シートソース変数は、このように、それぞれが別のエラーの原因となって、まだ空でありますこの種の

ここでの問題は何ですか?どのように修正できますか?ここ

+1

私はこれらの質問がrelaしかし、私はそれらが私の場合に働いているのを見ることができません:[エラー "オブジェクト変数またはWithブロック変数が設定されていません"](http://stackoverflow.com/questions/17691458/getting-error-object-variable-orブロック変数が設定されていない)および[VBA実行時エラー '91':オブジェクト変数またはWithブロック変数が設定されていない](http://stackoverflow.com/questions/26551262/vba-run-time-エラー91 - オブジェクト変数またはブロック変数無しのオブジェクト) –

+0

Qの答えがあなたのものです: 'Set'を使用してください –

+0

@chrisneilsenはい、この場合、私はもう2番目のペアが必要だったようです私は2時間前にこれを見てきましたが、以前と同じ方法を12回使用しました。 –

答えて

0

2つの問題:

は変数とサブの両方に同じ名前を与えていない1st-、あなたは両方の

のための「テスト」を持っている Set test = ActiveWorkbook

のようなこのライン test = ActiveWorkbookSetを追加します2nd-

覚えている変更 - 他のものにサブ名test

+0

エラーが最初に削除されている間、私の例に欠陥があったようです: 'set sheet = ActiveWorkbook.Worksheets(sourcename)'の後、変数がまだ空です、デバッガによると –

+0

名前が変更され、必要に応じて 'set'が追加されました。次に私は再び助けようとします –

関連する問題