VBA按纺纱机排序

时间:2017-01-27 05:44:57

标签: vba sorting spinner

我正在开发一个excel电子表格,其中包含我需要根据列A中的值进行排序的多行数据。列B包含由位于B列中的Spinners控制的值。

我要做的是创建按钮,按下这些按钮将根据A列对所有行进行排序,但不会破坏微调器。

到目前为止我尝试过:

  • 当我只使用一个简单的排序函数时,它会根据需要随着微调器一起移动行,但它不会更新微调器上的Cell Links,因此它们仍然与旧问题中的单元格相关联。

  • 我尝试在VBA中添加一行用于旋转器,当按下微调器时,它将更新旋转器Cell Link。这里的问题是excel在更新链接之前首先运行微调器的增量部分,导致它在更新链接之前递增/递减旧单元格。

  • 我尝试在VBA中为SORT宏添加一行,该行将运行For循环,以根据新的topleftcell值更新所有微调器Cell Link。这适用于Cell Link,但它也会根据移动的最后一个微调器的Cell Value更新Cell Value。毋庸置疑,这也是一个问题。

我不确定还有什么可以尝试,因为我对VBA仍然缺乏经验。

如果有人建议在不破坏微调器值或链接的情况下对包含微调器的单元格进行排序,我将非常感激!

提前致谢,如果需要进一步的信息,请告诉我。我可以包含我目前使用过的代码片段,但我不确定它是否有多大帮助。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。

Sub SORT()

   Range("A2:B4").SORT. Key1:=Range("A2"), Order:=xlAscending
   Call SpinnerControl

End Sub



Sub SpinnerControl()

Dim spn As Spinner
Dim rng As Range

    For Each spn In ActiveSheet.Spinners
        Set rng = spn.TopLeftCell
        spn.LinkedCell = rng.Address(external:=False)
    Next spn

End Sub