Код для пользовательской формы, который позволяет мне получать информацию с использованием идентификатора проекта в листе Excel книги.Извлечение информации из внешней книги из текущей открытой книги с использованием пользовательской формы
Однако теперь мне нужно будет искать на основе пользовательского ввода для projectID, который находится во внешней книге под названием active master file
.
Затем он будет извлекать информацию и помещать ее в форму пользователя и использовать команду добавления, чтобы вставить информацию в новые строки, найденные в текущей книге, называемой файлом отслеживания проекта.
Проблема заключается в том, что я не уверен в том, что код извлекает информацию из внешней книги в пользовательскую форму, которая присутствует в текущей открытой книге.
У меня есть две книги. Эта пользовательская форма найдена в книге под названием project tracker
, а внешняя книга, которую я хотел бы получить информацию на основе их идентификатора проекта, называется active master project
.
Это код, у меня есть для командной кнопки поиска для меня, чтобы сделать получение и поиск в листе книги под названием project tracker
:
Private Sub CommandSearchButton2_Click()
Dim lastrow
Dim ProjCode As String
Dim LabelProjName As String
Dim LabelObjective As String
Dim LabelProjSponsor As String
Dim LabelProjSponsorNew As String
Dim LabelProjManager As String
Dim LabelRegulatory As String
Dim LabelRiskLvl As String
Dim LabelDatePar As Date
Dim LabelCostPar As Long
Dim LabelAffectCust As String
Dim LabelCustNonRetail As String
Dim LabelCustRetail As String
Dim LabOutsourcingImp As String
Dim LabelKeyUpdate As String
Dim LabelSector As String
searchRow = 0
lastrow = Sheets("Program Status Summary").Range("B" & Rows.Count).End(xlUp).Row
ProjCode = TextBoxProjCode.Text
For currentrow = 4 To 100
If Cells(currentrow, 2).Text = ProjCode Then
searchRow = currentrow
TextBoxProjCode.Text = Cells(currentrow, 2).Text
TextBoxProjName.Text = Cells(currentrow, 3)
TextBoxSector.Text = Cells(currentrow, 4)
TextBoxObjective.Text = Cells(currentrow, 5)
TextBoxProjSponsor.Text = Cells(currentrow, 7)
TextBoxProjSponsorNew.Text = Cells(currentrow, 8)
TextBoxProjM.Text = Cells(currentrow, 6)
TextBoxRegulatory.Text = Cells(currentrow, 20)
TextBoxRiskLvl.Text = Cells(currentrow, 13)
TextBoxDatePar.Text = Cells(currentrow, 12)
TextBoxCostPar.Text = Cells(currentrow, 10)
TextBoxAffectCust.Text = Cells(currentrow, 15)
TextBoxCustNonRetail.Text = Cells(currentrow, 16)
TextBoxCustRetail.Text = Cells(currentrow, 17)
TextBoxOutsourcingImp.Text = Cells(currentrow, 19)
TextBoxKeyUpdate.Text = Cells(currentrow, 18)
End If
Next currentrow
TextBoxProjCode.SetFocus
End Sub
Был готов опубликовать мой отзыв. Я бы добавил только, что там, где OP имеет «lastrow = Sheets» («Сводка состояния программы»). Range («B» .... «Я бы добавил« ThisWorkbook.' »перед инструкцией Sheets, чтобы ссылаться на книгу, код сидит. –
Привет, я попробовал код, который вы дали, но он показывает «Подзаголовок вне диапазона» в строке «Установить WbPT = Рабочие книги (« tracker проекта ») ' – nabilah
Итак, 2 возможности для этого: либо книга не открыта (с таким типом утверждения он должен быть открытым), или имя не является точно «отслеживателем проекта», и вам нужно исправить (кепки, пробелы, расширение ('.xls',' .xlsx', '.xlsm' , ...). И вам, вероятно, нужно будет скорректировать все имена между скобками, чтобы они идеально соответствовали тому, что у вас есть!) – R3uK