Позвольте мне начать с того, что я совсем не знаком с VBA; хотя я хотел бы быть, я учусь как я go, и впоследствии я не знаю, чего я не знаю. Я с трудом нахожу эффективные учебные материалы, кроме того, что собираю все по кусочкам, поэтому любая помощь там будет высоко цениться.
У меня есть таблица, которую я буду называть «Данные клиента». В этой таблице у меня есть пять ячеек, которые мне нужно автоматически заполнить данными, опрошенными из регулярно обновляемой электронной таблицы Excel: «Идентификатор клиента», «Имя клиента», «Менеджер», «Контакт поддержки» и «Дата подписки». «Идентификатор клиента» должен генерировать раскрывающийся список, и в зависимости от того, что пользователь выбирает в этом раскрывающемся списке, оставшиеся ячейки должны заполняться контекстными данными для этого идентификатора. Любой совет или указатели на то, где я могу начать, очень помогли бы.
Спасибо!
Редактировать :
Sub Document_Open()
Application.ScreenUpdating = False
Dim xlApp As New Excel.Application, xlWkBk As Excel.Workbook
Dim StrWkBkNm As String, StrWkShtNm As String, LRow As Long, i As Long
StrWkBkNm = "C:\Users\" & Environ("Username") & "\Documents\Client List.xlsx"
StrWkShtNm = "Client List"
If Dir(StrWkBkNm) = "" Then
MsgBox "Cannot find the designated workbook: " & StrWkBkNm, vbExclamation
Exit Sub
End If
With xlApp
.Visible = False
Set xlWkBk = .Workbooks.Open(FileName:=StrWkBkNm, ReadOnly:=True, AddToMRU:=False)
With xlWkBk
With .Worksheets(StrWkShtNm)
LRow = .Cells(.Rows.Count, 1).End(xlUp).Row
ActiveDocument.SelectContentControlsByTitle("ID")(1).DropdownListEntries.Clear
For i = 2 To LRow
ActiveDocument.SelectContentControlsByTitle("ID")(1).DropdownListEntries.Add _
Text:=Trim(.Range("A" & i))
Next
End With
.Close False
End With
.Quit
End With
Set xlWkBk = Nothing: Set xlApp = Nothing
Application.ScreenUpdating = True
End Sub