• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 貼付先のコントロール?)

Excel VBA 貼付先のコントロール

このQ&Aのポイント
  • Excel VBAで製造シートのA列のデータを抽出シートの指定したセルから7行目以下に貼り付ける方法
  • VBAを使用して抽出シートの指定したセルから始まる7行目以下に製造シートのA列のデータを貼り付ける方法
  • VBAを使って製造シートのA列のデータを抽出シートの指定したセルの上から7行目以下に貼り付ける手順

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

No3です。 For i = 1 To nTotal .Cells(i + 7, Rtm).Value = Sheets("製造データ").Cells(i, 1).Value Next i ということでしょうか? Dim Rtm As Variant にする必要もないと思います。 Dim nTotal As Long Dim Rtm As Integer nTotal = Sheets("製造データ").Range("A1").End(xlDown).Row Rtm = Sheets("製造データ").Range("J1").Value With Sheets("抽出") For i = 1 To nTotal .Cells(i + 7, Rtm).Value = Sheets("製造データ").Cells(i, 1).Value Next i End With で十分かと やりたいことと違ったら、補足してください。

walking_person
質問者

お礼

有難うございました。あちらこちらからサンプル引っ張り出してきて、 色々な数値をいれ込んだりして苦戦していました。 基本は全く出来ていないのでダメな事は分かっていました。 本当に有難うございました。

その他の回答 (5)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.6

余計な世話と罵られるのを承知で。 #5さま、 >> .Cells(i + 7, Rtm).Value = (略) これだと「8行目以降」に転記ですね。 >> For i = 1 To nTotal iの起点は「1」ですから。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

やはりいまいちよく「あと一歩、何が足りないのか」わからないのですが、 算数の問題なのではないかなぁ、と思いますよ。 > .Cells(i * 3 - 2, Rtm)  i=1 の時、返り値は「1×3-2=1」  i=2 の時、返り値は「2×3-2=4」  i=3 の時、返り値は「3×3-2=7」   (略) おそらくですが、書き込みたい行は返ってこないでしょう。 7行目以降に貼り付けたいのであれば     For i = 1 To nTotal         .Cells(i + 6, Rtm).Value =(略) で良いのでは?

walking_person
質問者

お礼

有難うございました。<m(__)m> 全然しりませんでした。3日間考え抜いたのですけれど、 何とかマクロが走ってくれました。 基礎も全く出来ていない小生に御指導有難うございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

しばしおつきあいしますが >製造シートのA列のデータを抽出シートのRtmが代入されたセルの上から7行目以下に貼付たいのです。 の意味が分かりません Rtm = Sheets("製造データ").Range("J1") ですので、Sheets("製造データ").Range("J1") には、何が入っているのですか? 補足お願いします。 いまあるコードに、機能を追加したいということ? このコードでは、希望した結果が出ないということ?

walking_person
質問者

補足

説明不足すいませんでした。 ("J1")にはMach関数で所得した抽出シートの左端からの列番が入っています。 製造データシートから抽出シートの貼付先の上段から例えば7段目以降に順に貼付たいと思っています。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

追加です。 先の例でいいなら、 Dim nTotal as long , i as long Dim Rtm As long にしたほうがいいでしょう。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

説明がよくわからないのでとコードがそれであっているのかわかりませんが Rtm = Sheets("製造データ").Range("J1").column ということでは?

関連するQ&A