2017-10-05 15 views
0

次のコードを使用してListBoxにデータを入力しています。リストボックスの列1は、ワークシートの列Fから来て、リストボックスの2番目の列は、次の列から来ています。しかし、私はその2番目のリストボックスの列は、ワークシートの列Dから来るようにしたい(左2)。そして、私はちょうど私が望むようにオフセット作業を行うことはできません。VBA ListBox with Offset Columns

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

Ok ...サンプルワークブックを作成しました。コードが正常に動作しています。だから私の実際のワークブックに不一致を引き起こす可能性がどのようなアイデア? – phelbin