105911 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

ULALA'Sブログ

ULALA'Sブログ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2020.09.09
XML
カテゴリ:VBA
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​今回は絞り込んだデータを一括で編集する
方法を記載する。

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

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

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



ソース

Sub setAlllPrice()

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

    ' 指定商品による絞り込み
    Range("B114").AutoFilter 2, Range("C112").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行目というだけのこと。​​

Cells
(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("D115:D124")​​​
ということになる。
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
こうして​晴れて絞り込みを行ったデータのみを

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

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

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





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

Last updated  2020.09.09 21:29:12
コメント(0) | コメントを書く


PR

Profile

ULALA13

ULALA13

Calendar


© Rakuten Group, Inc.