rangeのエラーがでます(><)

解決


ひで  2006-10-27 06:37:40  No: 133878

超初心者です、すみませんがご教授ください
For a = 1000 To 1500
  Range("cells(a,1):Cells(a, 33)").Insert Shift:=xlDown
Next a
こんなのを実行すると下記のようなエラーが出ます
なにが悪いのでしょう?
・実行時エラー'1004':
・'Range'メソッドは失敗しました:'_Global'オブジェクト
変数aに対応するセル範囲に挿入をしたいのですが・・


特攻隊長まるるう  2006-10-27 07:19:24  No: 133879

>  Range("cells(a,1):Cells(a, 33)").Insert Shift:=xlDown
それだと "cells(a,1):Cells(a, 33)" が1つの文字列なので
『cells(a,1):Cells(a, 33)』という名前のついたセルを探しに
行くでしょうかねぇ。。。

いきなり
    Cells(1000, 1)
と書くと
    Application.Cells(1000, 1)
の意味になってアクティブシートがワークシートじゃないと
落ちるから、対象のシートが決まってるなら
    Worksheets("Sheet1").Cells(1000, 1)
と書いた方が良いでしょう。

自分が初心者だと思うなら、1行で全て書こうとせず、
変数を用意して、1ステップずつ確認しましょう。
以下のコードで意図通りの範囲が指定されますか?

[Excel VBA]
Sub Test()
    Dim a As Integer
    Dim str1 As String
    Dim str2 As String
    a = 1000
    Set s1 = Worksheets("Sheet1")
    With s1
        str1 = CStr(.Cells(a, 1))
        str2 = CStr(.Cells(a, 33))
        MsgBox str1 & ":" & str2
    End With
End Sub

ついでに Insert メソッドのShift に使用できる定数は
XlInsertShiftDirection クラスの xlShiftToRight または xlShiftDown 
だと思います。[Excel VBA]のヘルプで確認してください。


ひで  2006-10-27 10:36:14  No: 133880

すばやいレスありがとうございます
おかげで、解決しましたし、少し理解しました
これからまた精進します


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加