2017-10-04 46 views
0

我開發了一個宏,該宏使用動作函數更新圖形中每小時計數器的信息。它通過Worksheet_Change來感知用戶的行爲,並轉到數據表並使用相同的信息過濾所有單元格。選擇Ran共享文件錯誤超鏈接Vba excel

enter image description here 使用Worksheet_SelectionChange更新單元格B1(驗證數據),從而消除數據中的重複項,然後用戶可以選擇他們想要的選項。運行宏時沒有任何問題,但是當更新函數過濾超過550個值時。一個MsgBox拋出以下消息:該指數正在

enter image description here

所有值之前,它不與字符串用戶選擇無關緊要。這是一個DATA表的例子。

enter image description here

下一塊代碼更新的下拉列表:

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

問題解決!

這是由於一些變量被聲明爲Integer變成了一些函數,重新聲明爲long是解決方案。