このエラーの原因は通常、Set
キーワードの省略です。
Dim w as Worksheet
w = Sheet1 ' throws error 91
' Correct syntax:
' Set w = Sheet1
エラーが発生した行を教えていただければ、より具体的な回答が表示されます。コードサンプルの構文は正常ですが、エラーはコード内の別の行にある可能性があります。おそらく質問には表示されません。
範囲を選択するための「効率的な」方法はもうありますか?個人的には、表示方法が好きではなく、文字列をCells
の引数として使用します。文字列は乱雑であり、しばしば間違いにつながり、作業効率が低下します。なぜ:
Sheet1.Range(Cells(2,18),Cells(40,11)).Select
' or
Sheet1.Cells(2,11).Resize(39,8).Select
' or
Sheet1.Range("K2").Resize(39,8).Select
または、K2を定義します。あなたのシートに名前付き範囲としてQ40、例えばそれを呼び出します"myRange"、および次の操作を行います。
Sheet1.Range("myRange").Select ' My personal favourite
しかし、なぜあなたはSelect
を使用していますか?これは通常必要ではありません。
Sheet1.Range("myRange").Copy
をしかし、私はなぜあなたはエラーが発生した何行目では、それ自体が汚い方法でCopy
、...
を使用している、求めることができる:ちょうど書きますか? –
前後に何をしていますか?あなたのシート1は定義されていますか? – JMax