gpt4 book ai didi

vba - 您如何为每列顶部的每个命令按钮分配不同的宏,以便它们独立于其他宏工作?

转载 作者:行者123 更新时间:2023-12-04 20:35:23 26 4
gpt4 key购买 nike

我已将以下宏分配给电子表格的第一列,以按升序和降序对信息进行排序。该宏被分配给命令按钮并且可以工作。

If CommandButton1.Caption = "Click to Sort Ascending" Then

'Sort ascending...
ActiveWorkbook.Worksheets("daily data drop").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("daily data drop").Sort.SortFields.Add Key:=Range("A2:A308"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("daily data drop").Sort
.SetRange Range("A2:Z308")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
CommandButton1.Caption = "Click to Sort Decending"

Else

'sort decending
ActiveWorkbook.Worksheets("daily data drop").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("daily data drop").Sort.SortFields.Add Key:=Range("A2:A308") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("daily data drop").Sort
.SetRange Range("A1:Z308")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

CommandButton1.Caption = "Click to Sort Ascending"

End Sub

我希望每列的所有顶部标题都有一个按钮,可以像上面的宏一样对升序和降序进行排序,以保持行数据匹配。任何人都可以帮助我或者有一个可能有用的模板。

最佳答案

在每一列上放置一个按钮不是一个好主意。我会建议一种根本不需要按钮的方法。此外,您应该始终避免重复大部分代码,其中只有一两个语句根据某些参数而有所不同。您应该始终尝试“分解”您的代码并尽可能缩短它,这使其更具可读性和可维护性。

实现目标的一种可能方法是用户“双击”标题单元格并按单击的列对数据进行排序。并且在每次排序之后,排序顺序是相反的。

您可以通过将以下处理程序添加到工作表的代码模块来做到这一点 "daily data drop" :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Static descending As Boolean
If Target.Row <> 1 Then Exit Sub
Cancel = True
Me.UsedRange.Sort Target, IIf(descending, xlDescending, xlAscending), Header:=xlYes
descending = Not descending
End Sub

关于vba - 您如何为每列顶部的每个命令按钮分配不同的宏,以便它们独立于其他宏工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43355123/

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