我开发了一个宏,它在带有动作功能的图形中更新每小时计数器的信息。它感知Worksheet_Change
的用户操作转到DATA表并过滤所有具有相同信息的单元格。
单元格B1(验证数据)使用Worksheet_SelectionChange
更新,消除了数据中的重复项,然后用户可以选择所需的选项。运行宏时没有任何问题,但是当更新功能过滤超过550个值时。抛出一个MsgBox,并显示以下消息:
该索引之前的所有值都有效,与字符串用户选择无关。这是DATA表的一个例子。
下一个块代码更新下拉列表:
Function Get_CluName()
Dim Dic_Clu As Object
Dim i As Long
Dim Col As Integer
Set Dic_Clu = CreateObject("Scripting.Dictionary")
Call InitSht
If ShtData.Range("B1").Value = "LTE Cell Group" Then
Worksheets("GRAPH").Range("A1").Value = "Select Cluster:"
Col = 2
ElseIf ShtData.Range("D1").Value = "Cell Name" Then
Worksheets("GRAPH").Range("A1").Value = "Select Cell:"
Col = 4
End If
For i = 2 To ShtData.Range("A1048576").End(xlUp).Row
If Len(ShtData.Cells(i, Col).Value) > 0 Then
Dic_Clu(Trim(ShtData.Cells(i, Col).Value)) = Trim(ShtData.Cells(i, Col).Value)
End If
Next
If Dic_Clu.Count > 0 Then
Worksheets("GRAPH").Range("Z1").Resize(Dic_Clu.Count) = Application.Transpose(Dic_Clu.keys)
Worksheets("SUMMARY LTE KPI").Range("Z1").Resize(Dic_Clu.Count) = Application.Transpose(Dic_Clu.keys)
With Worksheets("GRAPH").Range("B1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=" & Worksheets("GRAPH").Range("Z1").Resize(Dic_Clu.Count).Address
End With
With Worksheets("SUMMARY LTE KPI").Range("B1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=" & Worksheets("SUMMARY LTE KPI").Range("Z1").Resize(Dic_Clu.Count).Address
End With
End If
End Function
**是否有任何选项可以调整下拉列表的内存大小? **因为它似乎溢出了清单。
答案 0 :(得分:0)
问题解决了!
这是由于一些变量被声明为Integer进入某些函数,重新声明为long是解决方案。