Excel VBA 質問スレッド №2028 (未解決)
フィルターをM列に昇順でかけたいのですが、昇順になりません。
投稿者 : VBA見習い中 投稿日時 : 2024/10/18(Fri) 15:28:06 OS : Windows 11 EXCEL : Office 365
どなたか教えてください。私は素人で、AIに聞きながら作成しております。
以下のVBAで、フィルターをM列に昇順でかけたいのですが、昇順になりません。
フィルターの設定まではうまくいきます。
どこに問題があるか、どのように修正したら良いか、どなたか教えてください。
どなたか教えてください。私は素人で、AIに聞きながら作成しております。
以下のVBAで、フィルターをM列に昇順でかけたいのですが、昇順になりません。
フィルターの設定まではうまくいきます。
どこに問題があるか、どのように修正したら良いか、どなたか教えてください。
Sub フィルタで順位付けと結果入力() Dim wsDataMerge As Worksheet Dim lastRow As Long Dim i As Long ' シート「データ結合」を設定 Set wsDataMerge = ThisWorkbook.Sheets("データ結合") ' 最終行を取得 lastRow = wsDataMerge.Cells(wsDataMerge.Rows.Count, "A").End(xlUp).Row ' M列のデータを数値として認識させ、カンマ付きの形式に変換 For i = 2 To lastRow If IsNumeric(wsDataMerge.Cells(i, "M").Value) Then wsDataMerge.Cells(i, "M").Value = CDbl(wsDataMerge.Cells(i, "M").Value) wsDataMerge.Cells(i, "M").NumberFormat = "#,##0" End If Next i ' フィルターを設定 wsDataMerge.Range("A1:DX" & lastRow).AutoFilter Field:=13 ' M列を昇順に並べ替え wsDataMerge.Sort.SortFields.Clear ' 並べ替えの設定をクリア wsDataMerge.Sort.SortFields.Add Key:=wsDataMerge.Range("M2:M" & lastRow), Order:=xlAscending With wsDataMerge.Sort .SetRange wsDataMerge.Range("A1:DX" & lastRow) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
スポンサーリンク
[返信 1] Re : フィルターをM列に昇順でかけたいのですが、昇順になりません。
投稿者 : tkit 投稿日時 : 2024/10/18(Fri) 15:51:43
コードは見てません。
単純にソートしてからフィルタを掛ければいいのでは?
コードは見てません。
単純にソートしてからフィルタを掛ければいいのでは?
[返信 2] Re : フィルターをM列に昇順でかけたいのですが、昇順になりません。
投稿者 : てらてら 投稿日時 : 2024/10/18(Fri) 19:43:26
こんにちは。
AIでなく、「マクロの記録」に聞くべきでしょう。
こんにちは。
AIでなく、「マクロの記録」に聞くべきでしょう。
Sub フィルタで順位付けと結果入力() Dim wsDataMerge As Worksheet Dim lastRow As Long Dim i As Long '--- 省略 --- ' フィルターを設定 'wsDataMerge.Range("A1:DX" & lastRow).AutoFilter Field:=13 wsDataMerge.Range("A1:DX" & lastRow).AutoFilter ' M列を昇順に並べ替え 'wsDataMerge.Sort.SortFields.Clear ' 並べ替えの設定をクリア wsDataMerge.AutoFilter.Sort.SortFields.Clear ' 並べ替えの設定をクリア 'wsDataMerge.Sort.SortFields.Add Key:=wsDataMerge.Range("M2:M" & lastRow), Order:=xlAscending wsDataMerge.AutoFilter.Sort.SortFields.Add Key:=wsDataMerge.Range("M2:M" & lastRow), Order:=xlAscending 'With wsDataMerge.Sort With wsDataMerge.AutoFilter.Sort '.SetRange wsDataMerge.Range("A1:DX" & lastRow) //削除 .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-05 18:00:41 )