Возвращает словарь из двух колонок массива
позднее связывание
АртеФакт, gem
Public Function Массив_в_Словарь( _ a2() As Variant, _ col_Key_ As Long, _ col_Item As Long) _ As Object ' tested ' array to dictionary, A2_2_Dic ' Возвращает словарь из двух колонок массива ' позднее связывание ' АртеФакт, gem Dim dic_Temp Set dic_Temp = CreateObject("Scripting.Dictionary") Dim key_ As Variant, _ item As Variant Dim y As Long With dic_Temp For y = LBound(a2) To UBound(a2) key_ = a2(y, col_Key_) item = a2(y, col_Item) If .Exists(key_) = False Then .Add key_, item End If Next End With Set Массив_в_Словарь = dic_Temp End Function '@TestMethod Public Sub Массив_в_Словарь_TestMethod() On Error GoTo TestFail Dim a2() As Variant, _ col_Key_ As Long, _ col_Item As Long a2 = Mock.G_a2_Latin(2, 2) col_Key_ = LBound(a2, 2) col_Item = col_Key_ + 1 Dim varReturn As Object Set varReturn = Массив_в_Словарь(a2(), _ col_Key_, _ col_Item) Dim vKey_ As Variant, _ vItem As Variant, _ a2_Keys_() As Variant, _ a2_Items() As Variant With varReturn a2_Keys_ = .Keys a2_Items = .items vKey_ = a2(LBound(a2), col_Key_) vItem = .item(vKey_) End With If vItem <> _ a2(LBound(a2), col_Item) Then Err.Raise 567, "Массив_в_Словарь(a2(),col_Key_,Col_Item)" TestExit: Exit Sub TestFail: Assert.Fail "Test error: #" & Err.Number & " - " & Err.Description End Sub
1 комментарий