excel vbaで値のコピーを行いたいと思っております。 Worksheets("Sheet1").Range(Cells(i+1, 30), Cells(i+1, 32)).Copy の部分で 実行時エラー1004、アプリケーション定義またはオブジェクト定義のエラーです と出ます

excel vbaで値のコピーを行いたいと思っております。 Worksheets("Sheet1").Range(Cells(i+1, 30), Cells(i+1, 32)).Copy の部分で 実行時エラー1004、アプリケーション定義またはオブジェクト定義のエラーです と出ます 2つのシート(Sheet1とResult)間での値のコピーで、下記スクリプトで実現しようとしております。 i = Worksheets("Sheet1").Cells(Rows.Count, 21).End(xlUp).Row Worksheets.Add ActiveSheet.Name = "Result" Worksheets("Sheet1").Range("AD1:BI1").Copy Worksheets("Result").Range("A1:AF1").PasteSpecial xlPasteValues Worksheets("Sheet1").Range(Cells(i+1, 30), Cells(i+1, 32)).Copy Worksheets("Result").Range("A2:AF2").PasteSpecial xlPasteValues 下から2行目で問題がおこり ・RangeをRange("AD126")としたりRange("AD126":"AF126")としたりCell(126,30)とするとエラーなく実行できます。 ・しかし、Range(Cells(126,30),Cells(126,32))としたりすると 実行時エラー1004、アプリケーション定義またはオブジェクト定義のエラーです となってしまいます。 原因および対応策をお教えいただけますでしょうか。 よろしくお願いいたします。

Visual Basic2,696閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

'宣言して Dim ws As Worksheet 'セットして Set ws = Worksheets("Sheet1") 'こんな感じとか i = ws.Cells(Rows.Count, 21).End(xlUp).Row Worksheets.Add ActiveSheet.Name = "Result" ws.Range("AD1:BI1").Copy Worksheets("Result").Range("A1:AF1").PasteSpecial xlPasteValues ws.Range(ws.Cells(i + 1, 30), ws.Cells(i + 1, 32)).Copy Worksheets("Result").Range("A2:AF2").PasteSpecial xlPasteValues Cells(i+ ~が”Sheet1”である事を、 明確にする必要があるかと。

ThanksImg質問者からのお礼コメント

ありがとうございます!! まだ、何故うまくいっているのか理解はできてませんが、うまくいきました!! Worksheets("Sheet1").をつけて大丈夫かと思っていたのですが・・・。

お礼日時:2010/7/1 11:14