• ベストアンサー

Activeセルの最終列の値を代入し、セル最終行までコピーするには

最終列の値の代入をここで教えていただいてできました。 J = Range("IV2").End(xlToLeft).Column For i = J to 1 Step -1 If InStr(Cells(2, i).Value, "単価") > 0 Then Cells(3, i).Value = Cells(3, J).Value End If Next i この、Cells(3, i).Value = Cells(3, J).Value を、 "単価"列の最終行までコピーするには どのような記述をしたらいいでしょうか? しばらく悩んでいますができません。。。 お力を貸してください。!

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

#2です。 > 一番右の列には、単価列と同じ行数あります。 A列ではなく、2行目の一番右の列の行数を基準にするんですね? Sub TEST() Dim i As Integer, x As Integer Application.ScreenUpdating = False x = Cells(2, ActiveSheet.Columns.Count).End(xlToLeft).Column For i = x To 1 Step -1 If InStr(Cells(2, i).Value, "単価") > 0 Then For r = 3 To Cells(ActiveSheet.Rows.Count, x).End(xlUp).Row Cells(r, i).Value = Cells(r, ActiveSheet.Columns.Count).End(xlToLeft).Value Next r End If Next i Application.ScreenUpdating = True End Sub ではおやすみなさい。

acochaco
質問者

お礼

何度も本当にありがとうございました。 できました! すぐにコードを記述できるとは、本当にすごいと つくづく思いました。 何時間やってもさっぱりすすまないので、 本当に力をかしていただきありがとうございました!!

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

擬似例でも上げて、4-5列の例で、また列と数行の例を示して、質問したらどうですか。 質問者は、解決方を知りたい気がはやるのは判るが、「でしょうか?」という風に回答者に、答えさせているのはおかしいと思いませんなか?

acochaco
質問者

補足

おっしゃる通りです。 できないのに人の知恵をお借りするのはずうずうしすぎますね。 今後きちんと例をあげて、途中のコードも書いて 見てもらうようにします。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

#1です。 最終列の3行目~最後行までの値を「単価」と言う言葉をタイトルに含む列全てにコピーするって事? そもそも「単価」って言葉をタイトルに含む列が沢山ある仕様が良く解らんですけど、、、 Sub aaa()  With ActiveSheet   j = .Range("IV2").End(xlToLeft).Column   For i = j To 1 Step -1    If InStr(.Cells(2, i).Value, "単価") > 0 Then      .Range(.Cells(3, j), .Cells(65536, j).End(xlUp)).Copy .Cells(3, i)    End If   Next i  End With End Sub

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> "単価"列の最終行までコピーするには 先ほどの質問もそうでしたが、仕様を書かないと回答者は推測でしか答えられません。 "単価"列の最終行は何で判断するのですか?単価の列にはまだ何も入力されていないのですよね?だったら、例えばA列の入力された最終行と同じとか、そういう情報をお知らせくださったほうが的確な回答が得られると思います。

acochaco
質問者

補足

ご回答ありがとうございます。 言葉が足りなくてすみませんでした。 一番右の列には、単価列と同じ行数あります。 おっしゃる通り、単価列には、何も入力していません。。 よろしくお願いします。

すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

単価と言う文字を含むタイトルがある列(以下 単価列)があり、その単価列を探して、全ての単価列に最終列の値を入れていくの? 仕様が良く理解出来ませんが、、、 Cells(3, i).Value = Cells(3, J).Value を for r = 3 to cells(65536,i).end(xlup).row  cells(r, i).Value = Cells(r, J).Value next r で希望通り?

acochaco
質問者

補足

ご回答ありがとうございました! 今動かしておりますが、空欄が返ってきてしまいます。 もう少しいじってみます。。

すると、全ての回答が全文表示されます。

関連するQ&A