У меня есть набор данных в другом файле, который имеет 3 столбца с тысячами строк.Все 3 столбца имеют значения, которые не являются уникальными.
Мне нужно 3 поля со списком.
Первое поле со списком предназначено для выбора из столбца «А» (возвращая уникальные значения) для различных типов.бизнес-единиц.
Далее, в зависимости от бизнес-единицы, поле со списком 2 предназначено для выбора конкретного клиента (в зависимости от выбранной бизнес-единицы).
Наконец, поле со списком 3 предназначено для выбораиз разных МВЗ, существующих для данного клиента.
Мне нужны уникальные значения для всех 3 столбцов.
Мне кажется, у меня есть поле со списком 1 со следующим кодом:
Option Explicit
Private Sub UserForm_Initialize()
Dim wbExternal As Workbook '<-- the other workbook with the data
Dim wsExternal As Worksheet '<-- the worksheet in the other workbook
Dim lngLastRow As Long '<-- the last row on the worksheet
Dim rngExternal As Range '<-- range of data for the RowSource
Dim myCollection As collection, cell As Range
On Error Resume Next
Application.ScreenUpdating = False
Set wbExternal = Application.Workbooks.Open("C:\Users\sarabiam\desktop\OneFinance_Forecast_Model\FY19_New_Forecast_Model_Data_Tables.xlsm", True, True)
Set wsExternal = wbExternal.Worksheets("#2Table_Revenue") '<-- identifies worksheet
Set rngExternal = wsExternal.Range("A8:A" & CStr(lngLastRow))
Set myCollection = New collection
With ComboBox1
.Clear
For Each cell In Range("A8:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If Len(cell) <> 0 Then
Err.Clear
myCollection.Add cell.Value, cell.Value
If Err.Number = 0 Then .AddItem cell.Value
End If
Next cell
End With
ComboBox1.ListIndex = 0
wbExternal.Close
Application.ScreenUpdating = True '<-- updates the worksheet on your screen
any time there is a change within the worksheet
End Sub