私はあなたが助けてくれることを願っています。 ダイアログボックスを開いて別のExcelシートを選択し、そのExcelシートが選択されると別のコードが呼び出され、B列がアルファベット順にソートされるようなコードがあります。VBA AZの並べ替えが正しく動作しない
私が持っている問題は、私はピック1
PIC 1に結果を得る私はAZのソートボタンをクリックして手動で列を並べ替える場合は、ソートはVBAコード
で正しく起きていないということです
しかし、私はアルファベット順にBの列をソートするコードを実行したとき。あなたは、トップエントリーが正しくないとアン・メッテToftager が正しくソートされていないと、2番目のエントリは、ラインでシートのさらに下のまま見ることができるように私は
PIC 2ピック2に
を結果を得ます83
マイコードは以下のとおりです。ソートが正しく行われ、結果が図1の結果と同じになるようにコードを修正することはできますか?
いつもどんな助けも大歓迎です。私はVBAのソートも
MY CODE
Sub Open_Workbook_Dialog()
Dim my_FileName As Variant
MsgBox "Select Denmark File" '<--| txt box for prompt to pick a file
my_FileName = Application.GetOpenFilename(FileFilter:="Excel Files,*.xl*;*.xm*") '<--| Opens the file window to allow selection
If my_FileName <> False Then
Workbooks.Open Filename:=my_FileName
Call SortColumn '<--|Calls the Filter Code and executes
End If
End Sub
Public Sub SortColumn()
With ActiveWorkbook.Sheets(1)
.Unprotect
lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Range("A1").Resize(79, lastcol).Sort Key1:=Range("B1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
End Sub
を働く必要があることを指摘しなければならない
PS 'さらに83行目のシートを降ろす'。あなたの 'SortColumn'コードでは、行79にリサイズされただけです - あなたのデータはどの行に終わりますか? – Jordan
こんにちはJordan:私のデータは151行目で終了します。毎日違うかもしれませんし、別の時間帯にデータが少なくてもかまいません。 –
'lastcol'のように' lastrow'変数を作成し、例えば、 'lastcol'変数を設定する場所の下で、' lastrow = .Cells(.Rows.Count、1).End(xlUp).Row'を追加してください。 '.Range(" A1 ")。Resize(lastrow、lastcol).Sort' – Jordan