- ベストアンサー
エクセルでK列の最終行のセル値を指定のセルに
- エクセルでK列の最終行のセルの値を指定のセルに転記する方法について教えてください。
- 質問者はシートを複数使って計算結果を管理しており、H6のセルに転記した値を使ってH列の最終行のセルに計算結果を転記したいとのことです。
- 提供されたコードは別のシートの特定のセルの値を指定の列に転記するものであり、質問者はこれを利用してK列の最終行の値を複数のH列の最終行のセルに転記しようとしています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問通りに書くと、下のようになります。 質問にあるコードはよく分かりません。 >H列の最終行のセルに転記したい とすると上書きですが、最終行の1行下に書くなら、 .Cells(Rows.Count, "H").End(xlUp).Offset(1, 0) = .Range("H7").Value になります。 Sub Sample3A() With ThisWorkbook.Sheets("入力表") .Range("H6") = .Cells(Rows.Count, "K").End(xlUp).Value .Cells(Rows.Count, "H").End(xlUp) = .Range("H7").Value End With End Sub
その他の回答 (2)
- kkkkkm
- ベストアンサー率66% (1719/2589)
NO2です。シート名を変数にするのを忘れてました。 Dim ShName As String ShName = "入力表" Col1 = "K" Col2 = "H" Row1 = 6 Row2 = 7 With ThisWorkbook Set Sh = .Sheets(ShName)
お礼
ご丁寧に2度もご回答いただき感謝です!! うまくいくこと確認しました。 BSは最初にご回答いただいた#No2さんにさせていただきますのでご了承ください。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 具体的な列とセルはシートで変わる可能性があります ということなので、なんか変な感じのコードだけど Sub Test() Dim Sh As Worksheet Dim Col1 As String, Col2 As String Dim Row1 As Long, Row2 As Long Col1 = "K" Col2 = "H" Row1 = 6 Row2 = 7 With ThisWorkbook Set Sh = .Sheets("入力表") Sh.Cells(Row1, Col2).Value = Sh.Cells(Rows.Count, Col1).End(xlUp).Value Sh.Cells(Rows.Count, Col2).End(xlUp).Value = Sh.Cells(Row2, Col2).Value ' 最終行の一個下ならこっち↓ ' Sh.Cells(Rows.Count, Col2).End(xlUp).Offset(1, 0).Value = Sh.Cells(Row2, Col2).Value Set Sh = Nothing End With End Sub
補足
早々のご回答ありがとうございます。 動作確認させていただき期待通りの結果が得られました。 #No1さんも#No2さんも質問の不備を推測し補足の正解まで回答いただき驚きです。 また、不要な追加条件(列、セルが変わる)等を付記したもので「変な感じ・・」になってしまい申し訳ありませんでした。 以前長いコードでご回答いただき当方の知識ではどこに列やセルが指定されているのかわからず試行錯誤で困ったことがあるので追記した次第です。 今回の場合は指定箇所が当方にもわかりますので無駄なお手数をおかけしてしまいました。
お礼
実際のシートで動作確認して期待通りに動きました。 ただし、担当者に実際の作業を確認したところ、実務的には最終行(+1)のセルから引っ張るよりも直接計算式(セル)の値と結果を各列の最終行(+1)に転記するほうが分かりやすく手間もかからず、ということに気づいたので式の右辺と左辺を交換してついでに要素も3つに増やして最後に、後知恵で結果転記後3つの参照元のセルの削除までを試行錯誤で実行できるようにして目的達成できました。 同様の入力作業が多いので色々なシートに汎用に使わせていただきます。 ありがとうございました。
補足
早々のご回答ありがとございます。 ご推察の通り最終行の1行下が目的セルでした。 今自宅でダミーシートで動作確認して期待通りに動きました。 以前マクロがバッティングした経験があるので月曜日に会社の本チャンのシートで試してみて結果報告いたします。