2017-10-05 83 views
0

我使用下面的代碼來填充列表框。 ListBox的第1列來自我的工作表的第F列,ListBox的第二列來自下一列。但我想讓第二個ListBox列來自工作表的D列(左邊2)。而我無法按照自己想要的方式進行膠印工作。VBA列表框與偏移列

Private Sub UserForm_Initialize() 

    Dim dic As Object 
    Dim rng As Range 
    Dim ky As Variant 

    Set dic = CreateObject("Scripting.Dictionary") 

    Set rng = Sheet4.Range("F2") 

    Do 
     If Not dic.exists(rng.Value) Then 
      dic.Add rng.Value, rng.Offset(, 1).Value 
     Else 
      dic(rng.Value) = dic(rng.Value) + rng.Offset(, 1).Value 
     End If 
     Set rng = rng.Offset(1) 
    Loop Until rng.Value = "" 

    For Each ky In dic.keys 
     With BWListBox3 
      .AddItem 
      .List(.ListCount - 1, 0) = ky 
      .List(.ListCount - 1, 1) = Application.Text(dic(ky), "[h]:mm") 
     End With 
    Next ky 

End Sub 

回答

1

2在左邊?

If Not dic.exists(rng.Value) Then 
     dic.Add rng.Value, rng.Offset(, -2).Value 
    Else 
     dic(rng.Value) = dic(rng.Value) + rng.Offset(, -2).Value 
    End If 
+0

這給了我「運行時錯誤13:類型不匹配」 – phelbin

+0

我只是自己試了一下,它對我來說工作正常......? – braX

+0

好的...我設置了一個示例工作簿,您的代碼正確無誤。那麼有什麼想法可能會導致我的實際工作簿中的不匹配? – phelbin