1

次のコードを使用して、特定の範囲を aWorkbookから別の にコピーしていますがWorkbook、正常に動作しています。

Rangeしかし、ソースを変更せずに宛先シートに貼り付ける直前に、昇順で並べ替える必要があります。助けてください。

With Workbooks(strExcelFile).Sheets(strSheetName)
     .Range(strRange).Copy
End With

ActiveSheet.Range(strDestCell).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
4

2 に答える 2

2

貼り付けると、新しく貼り付けた範囲が選択されるという事実を利用してください。その後、SELECTION を使用できます。

Public Sub test()
     Range("A1:A8").Copy
    ActiveSheet.Range("B1").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    Selection.Sort key1:=Range("B1")
End Sub

このテスト例は、A1 ~ A8 の一部のデータを含む任意の Excel ファイルで機能します。両方の場所の B1 は strDestCell に、A1:A8 は最終的なサブルーチンの strRange に置き換えることができます。

于 2013-02-22T06:18:04.190 に答える