[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートフィルタ抽出後データ先頭セルの選択』(JCS)
以下の操作をVBAでのコードで書きたいのですが、ご教授お願いいたします。
1行目(項目行)をオートフィルタ行としB列にてオートフィルタをかけます その際列Aのデータ先頭セルを選択する。 フィルタ抽出条件により、表示される行が変わってしまうため マクロ操作で記述しても特定のセル選択しかできません。
宜しくお願いいたします。
意味が解らなかったら、捨ててください。 BJ With ActiveSheet.AutoFilter.Range With .Resize(.Rows.Count - 1).Offset(1) MsgBox .Columns(1).SpecialCells(xlCellTypeVisible).Cells(1).Address End With End With
ご教授ありがとうございます。 以下の様な記述をしておりますが VBA初心者のため何処にどのように入れたらよいかわかりませんでした 大変恐縮ではございますが詳しく教えていただければ幸いです。 宜しくお願いします。
Sub 内製品注文() Range("B2").Value = "内製品注文書" Range("A4").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Sheets("使用数量").Select Range("A1:Q1").Select Selection.AutoFilter Selection.AutoFilter Field:=17, Criteria1:="1" Selection.AutoFilter Field:=10, Criteria1:="1" Selection.AutoFilter Field:=10, Criteria1:="●" Range("A1").Select ActiveCell.Offset(1).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("注文").Select Range("A4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("使用数量").Select Application.CutCopyMode = False Selection.AutoFilter Sheets("注文").Select End Sub
下記のセル選択をすることで、『オートフィルタ抽出後データ先頭セルの選択』ができます。
Range("A2:A" & 最終行 + 1).SpecialCells(xlCellTypeVisible).Areas(1).Cells(1).Select
内容は....
A列の明細開始行から最終行の次の行(空欄行)までの可視セルのうち、1番目の選択範囲「Areas(1)」の1番目セルを選択します。
最終行の次の行(空欄行)までを範囲に含めるのは、抽出件数がゼロになった場合のことを考慮しているためです。
ちなみに、マクロ処理の画面動作を抑止している場合は、セル選択の実施直前に画面動作を復活させてください。
Application.ScreenUpdating = True '画面動作の復活
最終行の取得方法についても記載しておきます。
一番簡単な方法は、必ず入力のある列(必須項目の列)で、最下行からEnd(xlUp)による最終入力セルまでのジャンプ移動を利用する方法です。
Range("A65536").Select '必須項目のA列のシート最下行を選択 Selection.End(xlUp).Select '入力のあるセルまでジャンプ 最終行 = Selection.Row '選択セルの行数を取得
以上、M-ITO による解説でした。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.