[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『値が入力されている最終行まで』(ドラチン)
下記のマクロでSheet2のAB5:AB29とAC5:AC29からSheet1のA5:A29とH5:H29へ値のみ転記するのですがデーターが29行目まで入力されて無い場合は入力されている最終行までを選択し値をSheet1へ転記したいと思います。
ご教授お願いします。
Sub 転記()
Sheets("Sheet1").Range("A5:A29,H5:H29").ClearContents
Sheets("Sheet1").Range("A5:A29").Value = Sheets("Sheet2").Range("AB5:AB29").Value
Sheets("Sheet1").Range("H5:H29").Value = Sheets("Sheet2").Range("AC5:AC29").Value
End Sub
< 使用 Excel:Excel2013、使用 OS:Windows10 >
こんな感じです With Sheets("Sheet2") With .Range("AB5", .Cells(.Rows.Count, "AB").End(xlUp)) Sheets("Sheet1").Range("A5").Resize(.Rows.Count).Value = .Value End With End With (´・ω・`) 2021/09/26(日) 00:34
With Sheets("Sheet2")
With .Range("AB5", .Cells(.Rows.Count, "AB").End(xlUp))
With Sheets("Sheet2"). Range("AB5", .Cells(.Rows.Count, "AB").End(xlUp))
とまとめて書いてしまってはいけないのでしょうか?
マクロ勉強中で気になりました。
ドラチン様
横入り、失礼しました。
(疑問) 2021/09/26(日) 05:41
With Sheets("Sheet2") With .Range("AB5", .Cells(.Rows.Count, "AB").End(xlUp)) ↑a ↑b ↑c Sheets("Sheet1").Range("A5").Resize(.Rows.Count).Value = .Value ↑d
↑aは、Sheets("Sheet2").Range ↑bは、Sheets("Sheet2").Cells ↑cは、Sheets("Sheet2").Rows.Count ↑dは、.Range("AB5", .Cells(.Rows.Count, "AB").End(xlUp)).Rows.Count
です。 .は直近のWith句です。 ↑cの .Rows.Count は Sheet2の行数。 ↑dの .Rows.Count AB列の5行目から最終行までの行数です。
ここで >With Sheets("Sheet2"). Range("AB5", .Cells(.Rows.Count, "AB").End(xlUp)) >とまとめて書いてしまってはいけないのでしょうか? と書いたら、エラーになりませんか? .Cells と .Rows.Count はWithの中に入っていないので、 親オブジェクトが何か指定されてないのでエラーです。 (´・ω・`) 2021/09/26(日) 06:02
ご丁寧な説明、誠にありがとうございます。
〉 .は直近のWith句です。
理解できました。
マクロは、色々と頭の中で組み立てて書くことが大切なのですね…。
慣れるまでは大変ですが、頑張りたいと思います。
(疑問) 2021/09/26(日) 06:24
(ドラチン) 2021/09/26(日) 11:31
「1/0」ってなんですか? おちついて、状況がわかるような説明をおねがいします (´・ω・`) 2021/09/26(日) 13:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.