日々お世話になっております。
さて、、、各列で最終行が違うので、取得しようとして以下の構文を組みました、、
ところが、
lastrow+1とすると、エラーは出ませんが、表示されなくなります。
以下の構文のままだと、1行目をラベルに使っているので、そのままラベルを表示するので、ずらそうとしたのですが、、offset(1,0)にしても表示してくれません、。
どうしたらいいのでしょうか、、ご回答いただければ幸いです。。
Private Sub Worksheet_Change(ByVal Target As Range)
Const maxcolumn = 39
Dim j As Long
Dim lastrow
With Worksheets("計算表")
For j = 2 To maxcolumn
lastrow = Worksheets("間隔").Cells(Rows.Count, j).End(xlUp).Row
.Range(.Cells(12, j), .Cells(12, j)).Value = Worksheets("間隔").Cells(lastrow, j).Value
Next j
End With
End Sub
No.3ベストアンサー
- 回答日時:
#2です。
ご質問をよく読んだら変な回答をしてしまったようです。すみません
最終行の下なら、空白が入るのは当然でしたね。
ラベル行しかない場合、次のカラムに進むような処理にすれば良いのかな。
Private Sub Worksheet_Change(ByVal Target As Range)
Const maxcolumn = 39
Dim j As Long
Dim lastrow
With Worksheets("計算表")
For j = 2 To maxcolumn
lastrow = Worksheets("間隔").Cells(Rows.Count, j).End(xlUp).Row
If lastrow > 1 Then
.Cells(12, j).Value = Worksheets("間隔").Cells(lastrow, j).Value
End If
Next j
End With
End Sub
度々のご回答まことにありがとうございます。お時間をとっていただき、感謝いたします。
正常に動きました、こういう If lastrow > 1 Then 基礎なのでしょうけど、初心者泣かせ、、なような気もします。。センスないのが重くのしかかってきますが、、
No.2
- 回答日時:
こんにちは、
>1行目をラベルに使っているので、そのままラベルを表示するので、ずらそうとしたのですが、、
lastrowが1の時2にすれば良いだけではないでしょうか?
lastrow = Worksheets("間隔").Cells(Rows.Count, j).End(xlUp).Row
If lastrow = 1 Then lastrow = 2
あと、.Range(.Cells(12, j), .Cells(12, j)).Valueは、
単に .Cells(12, j).Valueで良いかと、、、
デバッグを覚えないとこれ以上の上達は望めない気がします。。
いつもご回答くださいまして、ありがとうございます。
If lastrow = 1 Then lastrow = 2 こういうのはなかなか思いつきません、、センスないな~~と思いつつ、勉強させていただきます。
いましばらくお付き合いくだされば幸いに存じ上げます。
また、お時間のあるときにはよろしくお願いいたします。
No.1
- 回答日時:
こんにちは
何をしたいのかがよくわかりませんが・・・
>lastrow+1とすると、エラーは出ませんが、表示されなくなります。
「表示されない」のではなくて、空白セルを転写してきているだけと思います。
最終行の下の行のセルは必ず「空白セル」ですから。
12行目に先に値を入れておけば、それが消えることで確認できると思います。
>1行目をラベルに使っているので、そのままラベルを表示するので、~
「間隔シート」に実際のデータが何も入っていないのでは?
それとも、もしかして「間隔シートに値を追記してゆきたい」とかであるなら、シートが逆になっているというオチだったりして。
ご質問には関係ありませんが・・・
>.Range(.Cells(12, j), .Cells(12, j)).Value
普通なら、.Cells(12, j).Value ですませますけど・・・?
ご回答くださいましてありがとうございます。いつもお世話になっております。
落ちはそういうことですね、、空白、、
間隔シートにはデータはほぼリアルタイムで値が入ってきていて、それをリアルタイムで転記したいと考えておりました。
そのとおりですね、^^;それでも動くかやってみたら動きました、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
VBAでセルをクリックする回...
-
VBからEXCELのセルの値を取得す...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
【Excel】指定したセルの名前で...
-
Sub 要具ライフ() ActiveSheet....
-
任意フォルダから画像をすべて...
-
i=cells(Rows.Count, 1)とi=cel...
-
【VBA】飛び飛びの3セルに"完了...
-
Excel VBAで比較して数値があっ...
-
Excel VBA、 別ブックの最終行...
-
【Excel VBA】指定行以降をクリ...
-
TODAY()で設定したセルの日付...
-
エクセル(Excel) ワイルドカー...
-
EXCELで変数をペーストしたい
-
エクセルVBAで、シート上で結合...
-
ExcelのVBAで数字と文字列をマ...
-
VBAの計算で@が出てしまう件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報
この度もご回答くださり、本当にありがとうございます。
お時間を使っていただき、本当に感謝いたします。
正常に動きました。
少しこの質問に関連して、動いているけど、ちょっと気になることがありますので、改めて質問させていただきます。
今回もご尽力いただき、ありがとうございました。