excel - 按字母顺序添加复选框
问题描述
我编写了一些代码,在其中循环遍历 Pivot-Items,如果值与值列表中的值匹配,则会在用户表单中创建一个复选框。我现在向列表中添加了另一个值,并且正如预期的那样,用户窗体使用复选框显示了新值,但是它作为列表的结尾,尽管它以“A”开头并且列表实际上是按字母顺序排序的。我已经刷新了几次,打开了工作表等,但是新值复选框不会进入它应该在的复选框列表的顶部。“如果”检查不是按字母顺序排列的,我相信这不会有任何区别。
我怀疑原因是我在数据透视表中最后添加了新名称?如何让数据透视表“忘记”它?
'List Checkboxes
intTop = 10 'set the cursor for the first checkbox
Set frNew = Me.Controls.Add("Forms.frame.1")
With frNew
.Name = "SingleC"
.Caption = "Single Clients"
.Width = 150
.Left = 180
.Height = 170
.Top = 100
End With
Set pf = pt.PivotFields("Various Names")
For Each pi In pf.PivotItems
If pi.Value = "dcc" Or _
pi.Value = "eff" Or _
pi.Value = "mgg" Or _
pi.Value = "lpp" Or _
pi.Value = "bgg" Or _
pi.Value = "gtt" Then
Set cbNew = frNew.Controls.Add("Forms.Checkbox.1")
With cbNew
.Name = pi.Value
.Caption = pi.Value
.Left = 10
.Top = intTop
.AutoSize = True
End With
intTop = intTop + 15
Else
End If
Next pi
我希望这些名称按字母顺序排列,即从 dcc 开始,从上到下以 mgg 结尾。现在我的列表是之前的列表(在我添加新值之前),新值在最后,尽管它应该排在第二位。