OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

エクセルで変数を用いてセルの移動

  • すぐに回答を!
  • 質問No.130352
  • 閲覧数84
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 0% (0/2)

エクセルにおいて、たとえば上から順に検索していき、14番目をほかのシートにコピーしたいときに、以下の記述ではまずいでしょうか。
基本的にrangeやCellsの中に変数を組み込む方法がわかりません。
以下の方法で行うと、エラーが帰ってきました。


For J = 1 To 100 + 1
Select Case J
Case 14
Sheets("kanryou").Select
Range(Cells(J + Endd, 1), Cells(J + Endd, 1)).Select
Selection.Copy
Sheets("nukitori").Select
Range(Cells(K, 1), Cells(1, 1)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
K = K + 1
Case Else
End Select
Next
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル8

ベストアンサー率 38% (19/49)

特におかしいところはありません。 私も試してみましたが、エラーは出ませんでした。 どのようなエラーが出るのですか?
特におかしいところはありません。
私も試してみましたが、エラーは出ませんでした。
どのようなエラーが出るのですか?


  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

シートkanryouからnukitoriに転記するとして考えました。 まず、このコードが書かれている場所で違ってくると思います。 (1)シートのコードウインドウに書いた場合は、Range(Cells(k, 1), Cells(1, 1)).Select でエラー?  理由はシートを切り替えているからです。 (2)標準モジュールに書いた場合は、kが設定されていなければCells(k, 1)でエラ ...続きを読む
シートkanryouからnukitoriに転記するとして考えました。

まず、このコードが書かれている場所で違ってくると思います。
(1)シートのコードウインドウに書いた場合は、Range(Cells(k, 1), Cells(1, 1)).Select でエラー?
 理由はシートを切り替えているからです。
(2)標準モジュールに書いた場合は、kが設定されていなければCells(k, 1)でエラー?
 Kを設定した場合は動くと思いますが(Enddもどこかでセット?)、k=1 の場合は1行目に書かれますが、
 k=n の場合は1行目からn行目まで14行目の数値で埋まると思われます。(これが目的?)
 Select Case が使ってあるので、14以外にも書きこむ場合は、最後に指定した行数にある値で全てが埋められるはずです。
 上記はRange(Cells(k, 1), Cells(1, 1))の意味、目的が不明なため推測です。
 A列のK行目に書くならCells(k, 1)で大丈夫でしょう。

参考に同じような機能を作ってみました。変数もなるべく同じにしています。Copy等は使っていません。
標準モジュールに貼り付けます。参考になる?
(質問から、処理を推測して書いています。違っていたら読み飛ばしてください)

Public Sub sheet2sheetCopy()
  Dim ws0, ws1 As Worksheet 'ワークシート
  Dim LastRow As Long '対象とする最後の行数
  Dim J As Long 'カウンタ
  Dim K As Long 'コピー先行数
  Dim Endd As Long '開始行???
  Endd = 0
  K = 1
  LastRow = 100

  Set ws0 = Worksheets("kanryou") 'ws0からws1にコピー
  Set ws1 = Worksheets("nukitori")

  ws0.Select
  For J = 1 To LastRow
    Select Case J
      Case 14, 28, 42, 66
        ws1.Cells(K, 1) = ws0.Cells(J + Endd, 1)
        K = K + 1
      Case Else

    End Select
  Next
End Sub
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ