dポイントプレゼントキャンペーン実施中!

Excelにて、ソートをしようとVBAを書いたのですが、
A,B,C,DのsheetがありBをソートします。
A sheetへVBA実行用のボタン(フォームコントロール)
を作って実行すると動かず(ソートしない)
B sheetへボタンを作って実行するするとソート
します。どのようにすれば、A sheetのボタンでも動くように
なるのか教えてください。、
※2007です。
※ソートするsheetのみ動作します。

Sub sample39()
Dim 最終行 As Long
With Sheets("B").UsedRange
最終行 = .Rows(.Rows.Count).Row
End With
最終行 = Range("A" & Rows.Count).End(xlUp).Row
Range("A1:M" & 最終行).Sort Columns("M"), xlAscending, Header:=xlYe
End Sub


宜しくお願いします。

A 回答 (1件)

ソートはアクティブシートに対してしか出来ませんので、シート切替を前後で行えば良いと思います。


切り替わって見えるのが嫌ならば画面更新を止めれば可能です。
それから
--------------------------------------------------------
With Sheets("B").UsedRange
最終行 = .Rows(.Rows.Count).Row
End With
--------------------------------------------------------

--------------------------------------------------------
最終行 = Range("A" & Rows.Count).End(xlUp).Row
--------------------------------------------------------
で書き換えられてしまうので不要ではありませんか?

結果以下のような物はいかがでしょうか?

Sub sample39()
Dim 最終行 As Long
 Application.ScreenUpdating = False
 Sheets("B").Select
 最終行 = Range("A" & Rows.Count).End(xlUp).Row
 Range("A1:M" & 最終行).Sort Columns("M"), xlAscending, Header:=xlYes
 Sheets("A").Select
 Application.ScreenUpdating = True
End Sub
    • good
    • 1
この回答へのお礼

早々にご対応して頂きありがとうございます。
上手くいきました。
今後、少しづつ勉強していきたいと思います。
ありがとうございました。

お礼日時:2020/01/15 18:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!