| 
    
     |  | ▼プロ初心者 さん: >またちょっと無駄な足掻きをしてみたので経過報告致します。
 >
 >  Dim y1, y3, y4 As Integer
 >    If Range("a2").Value = True Then
 >      y1 = 1
 >        For y2 = 1 To 11
 >          y3 = y1 + y2
 >          y4 = Cells(y3, 23).Value
 >          Worksheets("ABILITY").Activate
 >          Cells(y4, 1).Select
 >          ActiveCell.Copy
 >          Cells(y4, 2).Select
 >          ActiveSheet.Paste
 >        Next
 >      End If
 >
 >上の8行目と10行目のy4を変数ではなく数値に置き換えてみたところ
 >エラー発生せず実行完了致しました。
 >変数ではないためFor〜Nextが効いたかどうか不明ですが。
 >おかげで座標指定方法が逆だという事もわかりました。
 >それで、再度変数に戻すと同じエラーが出るのです。
 >
 >Range(.Cells(y4, 1)).Select
 >に変えるとエラー内容が
 >参照が不正または不完全です
 >となります。
 >これを解決しようと今まで検索掛けた用語は
 >vba 座標 変数 range cells
 >ですが不足してる用語などありましたら教えて頂きたく存じます。
 
 推測で申し訳ないですけど、
 
 >          Worksheets("ABILITY").Activate
 シート名”ABILITY”をアクティブにした後で次のループの際には、
 >          y4 = Cells(y3, 23).Value
 このセルは元のシートではなく、シート名”ABILITY”のセルを参照するのでは?
 と思うのですが。。。
 違っていたらすいません。
 
 |  |