[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Sortで実行時エラー すべてのセルを同じサイズにする必要』(bono)
VBA初心者です。
今回下記のcodeを作り、EXCEL2013で実行すると意図した作業ができますが、
EXCEL2016で実行するとSort部の.Applyで「すべてのセルを同じサイズにする必要があります」とエラーになります。セルは3列、4列、2列のそれぞれ結合セルで同じサイズです。
Sub 表整理()
Dim ws As Worksheet: Set ws = ActiveSheet
Dim myR As Long
Application.ScreenUpdating = False
With ws
.Range(.Cells(47, 30), .Cells(86, 38)).ClearContents
.Range(.Cells(13, 2), .Cells(32, 10)).Copy .Cells(47, 30).PasteSpecial
.Range(.Cells(13, 15), .Cells(32, 23)).Copy .Cells(67, 30).PasteSpecial
.Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range("AG46"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ws.Sort .SetRange Range("AD47:AL86") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom '.SortMethod = xlPinYin .Apply ←←並べ替えるときエラーが出ます。
End With .Range(.Cells(13, 2), .Cells(32, 23)).ClearContents
myR = .Cells(Rows.Count, 33).End(xlUp).Row
If (myR - 47) <= 20 Then .Range(.Cells(47, 30), .Cells(myR, 38)).Copy .Cells(13, 2).PasteSpecial Else .Range(.Cells(47, 30), .Cells(66, 38)).Copy .Cells(13, 2).PasteSpecial .Range(.Cells(67, 30), .Cells(myR, 38)).Copy .Cells(13, 15).PasteSpecial End If .Range(.Cells(47, 30), .Cells(86, 38)).ClearContents End With Application.ScreenUpdating = True End Sub VBAに長けた皆様よろしくお願いいたします。
(bono)
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>EXCEL2013で実行すると意図した作業ができますが、 >セルは3列、4列、2列のそれぞれ結合セルで同じサイズです。
当方のXL2013(Win10) で手動テストした限りでは、同じエラーが出ました。 そちらの勘違い(記憶違い)の可能性はないですか?
同じファイルを使って再確認済みなら、ごめんなさいです。
(半平太) 2020/07/06(月) 12:07
半平太様 早速の回答ありがとうございます。 >同じファイルを使って再確認済みなら、ごめんなさいです。 同じファイルを使って、私のEXCELは2013ではOK、他のパソコンがEXCEL2016ではエラーです。 EXCEL2013で、同様なシートを作成してマクロを実行してみましたが、OKでした。 どうしてでしょうかね?
(bono) 2020/07/06(月) 13:09
解決方法が見つけら れなかったので、COPY後セルの結合を解除して、 Sort後、セル結合で対処しました。
他に、良い方法があればご教示願います。 (bono) 2020/07/06(月) 19:26
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.