Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


324 / 13645 ツリー ←次へ | 前へ→

【81007】オートフィル後の可視セル抽出に関して まみ 19/7/8(月) 16:15 質問[未読]
【81009】Re:オートフィル後の可視セル抽出に関して Jaka 19/7/8(月) 17:42 発言[未読]
【81014】Re:オートフィル後の可視セル抽出に関して マナ 19/7/8(月) 23:53 発言[未読]

【81007】オートフィル後の可視セル抽出に関して
質問  まみ  - 19/7/8(月) 16:15 -

引用なし
パスワード
   はじめまして。
ExcelVBAではオートフィル操作に弱いというのは知っていますが、
業務上どうしてもやらなければなりません。

そこで質問があります。

以下、オートフィルして絞りこんだ行の中の1つの値を
上から順番に取得するというロジックを書きたいのですが、
うまくいきません。

つまり、

   A    B    C    D  
1 りんご  AAA   まさよ  海
2 みかん  BBBB  かおる  海
3 バナナ  DIDI  りえ   山
4 キウイ  FRFR  なおこ  山
5 いちご  NNN   あかり 海



オートフィルでD列から「海」だけ取り出す
   A    B    C    D  
1 りんご  AAA   まさよ  海
2 みかん  BBBB  かおる  海
5 いちご  NNN   あかり 海



C列の女性の名前を上から1件ずつメッセージ表示

ループ1回目→メッセージボックス「まさよ」
ループ2回目→メッセージボックス「かおる」
ループ3回目→メッセージボックス「あかり」


これに関して、色々なロジックをネットで調べましたが
うまくできません。

なお、「意外と使えるExcelでオートフィルタで表示しているセルだけ取得するVBA」というページも拝見しましたが、これだと行数はちゃんと取得できるものの、
列数の場合はうまくいきませんでした。

どう書けばよいのでしょうか。

ご教示よろしくお願いいたします。

【81009】Re:オートフィル後の可視セル抽出に関して
発言  Jaka  - 19/7/8(月) 17:42 -

引用なし
パスワード
   オートフィル??

>列数の場合はうまくいきませんでした。

よく解ってないけど。

fot Each セル1 in 可視セル範囲.columns(3).Areas
  for Each セル2 in セル1

【81014】Re:オートフィル後の可視セル抽出に関して
発言  マナ  - 19/7/8(月) 23:53 -

引用なし
パスワード
   ▼まみ さん:

>ループ1回目→メッセージボックス「まさよ」
>ループ2回目→メッセージボックス「かおる」
>ループ3回目→メッセージボックス「あかり」

Sub test()
  Dim rr As Range
  Dim r As Range
  Dim c As Range
  
  Set rr = ActiveSheet.AutoFilter.Range
  
  On Error Resume Next
  Set r = Intersect(rr, rr.Offset(1)).Columns(3).SpecialCells(xlCellTypeVisible)
  On Error GoTo 0
  
  If Not r Is Nothing Then
    For Each c In r
      MsgBox c.Value
    Next
  End If
  
End Sub

324 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free