ULALA'Sブログ

ULALA'Sブログ

2020年09月09日
XML
カテゴリ: VBA
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ​​​今回は絞り込んだデータを一括で編集する
方法を記載する。



①Range.AutoFilter
②.End(xlUp)、.End(xlDown)



112行目の指定商品で記入された商品を
絞り込んで、その横の金額​で一括設定し
絞り込みを解除して表示する、というような
動きにしてみた。

※メロンが大豊作だったという設定のもと、
全ての店で売られるメロンを
無料にしてみる。



ソース

Sub setAlllPrice ()

' オートフィルタクリア
Range ("B114"). AutoFilter

' 指定商品による絞り込み
Range ("B114"). AutoFilter 2 , Range Value

' 絞り込み後データを全て指定の値段にする
Range ( Range ("D115"), Cells ( Rows.Count , 4) ​.End(xlUp)​ ) = Range ("E112"). Value

​' オートフィルタクリア​
Range ("B114"). AutoFilter

End Sub

結果




ことが確認できた。

Range ( Range ("D115"),  Cells ( Rows.Count , 4) ​.End(xlUp)​

について、Rangeが入れ子になっており、
少し複雑なので分解して書いてみると、、

​​Rangeは、Range( , )で指定するので、​​
​​Range( Range("D115") ,   ​Cells(Rows.Count, 4)​.End(xlUp)​​ )​​

​​ Range("D115")
 結局の所、 115行目 というだけのこと。​​

( Rows.Count , 4) ​.End(xlUp)は、
 Rows.Countがエクセルの最終行を表す関数
 (すなわち1048576行)なので
Cells(1048576, 4)となる。

 さらにその場所から、.Endプロパティによりデータの終端を探す。
 終端といっても下に行くだけでなく、この場合は、
​​.End( xlUp )​の通り、UPということなので、
Cells(1048576, 4)からデータのある個所まで 上へさかのぼれ

​ということになる。
※.End(xlDown)だったら逆に、データのある個所まで
下へ降りろ、ということ。

さかのぼった結果、見つかったデータが最終データ
となるので、
上記画像の場合、D124が最終データ
となる。

よって
Range( Range("D115") ,   ​Cells(Rows.Count, 4)​.End(xlUp)​​ )

​​​ Range("D 115:D124" ) ​​​
ということになる。
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
こうして​晴れて絞り込みを行ったデータのみを

一括で変更することができた。

今回で一通り絞り込みについての内容が記載できたので、

次回からはデータの並べ替えについて記載してみようと思う。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2020年09月09日 21時29分12秒
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

プロフィール

ULALA13

ULALA13

カレンダー


© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: