gpt4 book ai didi

vba - 对工作簿中的所有工作表进行排序

转载 作者:行者123 更新时间:2023-12-02 13:30:44 25 4
gpt4 key购买 nike

我的代码实际上完全符合我的要求:

转到特定范围,将表格复制到新范围中并对表格重新排序。

这是代码:

 Sub copy_paste_sort()

Dim oneRange As Range
Dim aCell As Range
Dim WS_Count As Integer
Dim I As Integer

' Set WS_Count equal to the number of worksheets in the active
' workbook.
WS_Count = ActiveWorkbook.Worksheets.Count

' Begin the loop.
For I = 1 To WS_Count

Set oneRange = Range("CZ269:DA294")
Set aCell = Range("DA269")

Range("CW269:CX294").Select
Selection.Copy

Range("CZ269:DA294").Select
ActiveSheet.Paste

oneRange.Sort Key1:=aCell, Order1:=xlDescending, Header:=xlNo


Next I

End Sub

问题是:代码并非在所有工作表中都有效,它在第一个工作表中重复了 n 次。

最佳答案

您永远不会告诉代码转到下一个工作表。另外,您的选择看起来没有必要。

 Sub copy_paste_sort()

Dim oneRange As Range
Dim aCell As Range
Dim WS_Count As Integer
Dim I As Integer

' Set WS_Count equal to the number of worksheets in the active
' workbook.
WS_Count = ActiveWorkbook.Worksheets.Count

' Begin the loop.
For I = 1 To WS_Count

Set oneRange = worksheets(I).Range("CZ269:DA294")
Set aCell = worksheets(I).Range("DA269")

worksheets(I).Range("CW269:CX294").Copy worksheets(I).Range("CZ269:DA294")

oneRange.Sort Key1:=aCell, Order1:=xlDescending, Header:=xlNo


Next I

End Sub

另外 - 由于您正在对范围进行排序,我猜测它包含值,而不是公式。如果是这种情况,您可以替换

工作表(I).Range("CW269:CX294").复制工作表(I).Range("CZ269:DA294")

工作表(I).Range("CZ269:DA294").Value = 工作表(I).Range("CW269:CX294").Value

这样做的优点是速度稍快,并且不使用剪贴板。

关于vba - 对工作簿中的所有工作表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43103470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com