Копирование ячеек из таблицы Excel в другую таблицу Excel - PullRequest
0 голосов
/ 13 января 2020

Это, вероятно, будет звучать запутанно, поэтому я постараюсь объяснить. Я действительно новичок в VBA, и я в порядке в Excel. Я пытаюсь сделать электронную таблицу, которая заполняет определенные значения, в другую электронную таблицу, настроенную как шаблон. Однако существует несколько различных шаблонов, которые необходимо заполнить в зависимости от найденного значения. Шаблоны являются отдельными файлами. Без возможности раздавать деловую информацию о клиенте я буду использовать пример. У меня есть шаблоны a.xls, b.xls и c .xls, в них есть 3 ячейки, которым требуется информация из таблицы настроек, ie, result1, result2, result3 из таблицы. Поэтому, если «а» найдено, тогда возьмите result1, result2 и result3, скопируйте их и вставьте в a.xls требуемые ячейки.

table

код, который у меня есть на данный момент, находит значения в столбце данных и просто возвращает сообщение. Я не знаю, является ли это правильным решением, и я натыкаюсь на примеры в Интернете, поэтому любая помощь будет потрясающей.

Пока это мой код.

    Sub LookupTableValue()
Dim Table2 As ListObject
Dim FoundCell1, FoundCell2 As Range
Dim LookupValue1, LookupValue2 As String
  LookupValue1 = "a"
  LookupValue2 = "b"
  Set Table2 = ActiveSheet.ListObjects("Table2")
    Set FoundCell1 = Table2.DataBodyRange.Columns(1).Find(LookupValue1, LookAt:=xlWhole)
    Set FoundCell2 = Table2.DataBodyRange.Columns(1).Find(LookupValue2, LookAt:=xlWhole)
    If Not (FoundCell1 Is Nothing) Then
        If FoundCell1.Value = LookupValue1 Then
            MsgBox "Found a"
        End If
    End If
    If Not (FoundCell2 Is Nothing) Then
        If FoundCell2.Value = LookupValue2 Then
            MsgBox "Found b"
        End If
    End If
End Sub

Итак, я думаю, что вместо строки MsgBox мне нужно открыть электронную таблицу спецификаций c xls, которая является шаблоном, а затем скопировать ячейки таблицы в этот шаблон, а затем сохранить новые .xls в другой папке.

1 Ответ

0 голосов
/ 13 января 2020
Pathname=File Path
If FoundCell1.Value = LookupValue1 Then
            MsgBox "Found a"
            Filename=File name depending on the value
            Set workbook = Workbooks.Open(Filename:=Pathname & Filename)
            Copy table content to above workbook. See this [https://stackoverflow.com/questions/31702885/copy-tables-to-another-worksheet][1]
            workbook.SaveAs Filename:=NewFileName, FileFormat:=xlWorkbookNormal
End If

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...