
WorksheetFunctionの関数で「型が一致しません。」でエラーになります。
オートフィルタで抽出したデータから最も多いデータ名を取得したいです。
Worksheets("シート名").Activate
Range("A1").AutoFilter Field:=11, Criteria1:=条件1
Range("A1").AutoFilter Field:=25, Criteria1:=条件2
Dim Rw As Long
Dim va As Variant
If ActiveSheet.FilterMode Then
Rw = Cells(Rows.Count, 1).End(xlUp).Row
If Rw > 1 Then
va = Application.WorksheetFunction.Index(Worksheets("シート名").Range("E2:E" & Rw).SpecialCells(xlCellTypeVisible), Application.WorksheetFunction.Mode(Application.WorksheetFunction.Match(Worksheets("シート名").Range("E2:E" & Rw).SpecialCells(xlCellTypeVisible), Worksheets("シート名").Range("E2:E" & Rw).SpecialCells(xlCellTypeVisible), 0)))
Worksheets("シート名2").Cells(j, 3).Value = va
End If
End If
A 回答 (3件)
- 最新から表示
- 回答順に表示

No.3
- 回答日時:
そうだね
続きです。↓
’フィルタ
Range("A1").AutoFilter Field:=1, Criteria1:=条件
If ActiveSheet.FilterMode Then
Rw = Cells(Rows.Count, 1).End(xlUp).Row
If Rw > 1 Then 'フィルタ抽出、該当なしの時はRwは1
If Range(Range("A2"), Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible).Count = 1 Then 'フィルタの件数が1件の時
va = Worksheets("シート名").Range("B2:B" & Rw).SpecialCells(xlCellTypeVisible).Value
Else
va = Application.Index(Worksheets("シート名").Range("B2:B" & Rw).SpecialCells(xlCellTypeVisible), Application.Mode(Application.Match(Worksheets("シート名").Range("B2:B" & Rw).SpecialCells(xlCellTypeVisible), Worksheets("シート名").Range("B2:B" & Rw).SpecialCells(xlCellTypeVisible), 0)))
End If
Else
va = ""
End If
End If
Worksheets("結果").Cells(1, 1).Value = va
No.2
- 回答日時:
No.1です。
自己解決、おめでとうございます。よろしければ、後学のためにコードを公開して頂けないでしょうか。
ママチャリ様、runix2007様
返信大変遅れて申し訳ありませんでした。
初心者のプログラムなので、バグや不具合ございましたら、ご指摘頂ければ幸いです。
文字数の都合上、分割して表示させて頂きます。
【目的】シート名のA列でフィルタ抽出後、B列で最も多い名称を取得し、結果シートに出力
Dim Rw As Long
Dim va As Variant '文字列ならString型でも大丈夫です。
Worksheets("シート名").Activate
'フィルター解除
ActiveSheet.AutoFilterMode = False
No.1
- 回答日時:
それぞれの関数をバラして、個々に実験してみて下さい。
フィルタの結果でセル範囲が分割された場合、エラーになってしまうと思います。この結果から、WorksheetFunctionでの実装は現実的ではないような気がします。
個人的には、関数を使わずに自力でロジックを組むしかないかと・・・。
どうしても関数を使いたいのであれば、可視セルのみを作業列にコピーして、その作業列をターゲットに関数で集計するとかですかね。最終的にシート名2に結果を表示するようなので、コピー先をシート名2にして、そのシート上で関数で求めても良いかもしれません。
コメントありがとうございます。
WorksheetFunctionを消して、Application.Index・・・・に修正したらなぜか動きました。
あとは、フィルタの件数が1件のみの時は、その名称をそのまま取得するように追加しました。
お世話様でしたm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 【至急】Excel 同一人物の情報を一行にまとめる(複数行) 6 2022/05/24 17:58
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
このQ&Aを見た人はこんなQ&Aも見ています
-
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
ApplicationとWorksheetFunctionの違い
Visual Basic(VBA)
-
Excel VBA 複数条件にマッチしたものを指定したセルに配置したい
Excel(エクセル)
-
-
4
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
5
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
6
UserForm1.Showでエラーになります。
工学
-
7
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
10
Excel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合
Access(アクセス)
-
11
数値をワイルドカードでフィルタしたい
Excel(エクセル)
-
12
VBA Constの指定シートのセルを指定する方法
Visual Basic(VBA)
-
13
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
14
マクロでセルの右から2番目の文字を取得する方法を教えてください
Excel(エクセル)
-
15
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
16
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
17
空白への0入力 二次元配列(VBA)
Excel(エクセル)
-
18
Excel VBAで配列の途中から(X)Match関数で検索する
Visual Basic(VBA)
-
19
URLのリンク切れをマクロを使って表示する方法を教えてください。
その他(プログラミング・Web制作)
-
20
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
XL:BeforeDoubleClickが動かない
-
VBAで同じシート名のコピー時は...
-
Excel複数シートを別ブックに値...
-
ユーザーフォームに入力したデ...
-
VBA ユーザーフォーム上のチェ...
-
実行時エラー'1004': WorkSheet...
-
ExcelのVBAのマクロで他のシー...
-
VBAをMACで使えるようにしたい&...
-
セルのコピーで「オブジェクト...
-
エクセル・マクロ シートの非...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】シート表示、非表...
-
Excel VBA リンク先をシート...
-
EXCELVBAを使ってシートを一定...
-
VBA yがシート名の時Sheets(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
実行時エラー'1004': WorkSheet...
-
ブック名、シート名を他のモジ...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
ExcelVBA:複数の特定のグラフ...
-
エクセルのシート名変更で重複...
-
IFステートの中にWithステート...
-
VBA 検索して一致したセル...
-
ExcelのVBAのマクロで他のシー...
-
XL:BeforeDoubleClickが動かない
-
別のシートから値を取得するとき
-
エクセルVBA Ifでシート名が合...
-
エクセル・マクロ シートの非...
-
シートが保護されている状態で...
-
シート削除のマクロで「delete...
おすすめ情報