Excel VBA использует найденный столбец и строку для вставки данных - PullRequest
0 голосов
/ 14 декабря 2018

Я хочу отправить данные из одной рабочей книги в другую рабочую книгу (рабочая книга A отправляет данные в рабочую книгу B).

Я создал код, который открывает рабочую книгу B и ищет значения, заданные в определенных ячейках рабочей книги.A.

Единственное, что я не могу сделать, и мне не нужна помощь, это скопировать диапазон из рабочей книги A (диапазон: от G71 до DI71 включительно) и вставить этот диапазон в рабочую книгу B в столбце истрока, которая найдена с этим кодом

Код, который у меня есть до сих пор:

Private Sub CommandButton1_Click()
Dim Fstring As String
Dim Pstring As String
Dim Bureauplanning As String
Dim wb As Workbook
Dim cFind As Range
Dim rFind As Range
Dim rngc As Range
Dim rngp As Range

    'cell with data to find
    Fstring = Range("G13").Value
    Pstring = Range("A2").Value


Bureauplanning = "\\nel-data\Document\Planning\Bureauplanning.xlsm"
    Workbooks.Open (Bureauplanning)

With Sheets("Blad1").Range("G13:DI13")
Set rFind = .find(What:=Fstring, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
If Not rFind Is Nothing Then
    MsgBox rFind.Column

End If
End With

With Sheets("Blad1").Range("F:F")
Set cFind = .find(What:=Pstring, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
If Not cFind Is Nothing Then
    MsgBox cFind.Row

End If
End With

End Sub

msgbox-ы просто для проверки, если я получаю хорошие строки и столбцы.

Я надеюсь, что кто-то может помочь.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Метод копирования

Просто добавьте это после своего кода:

With Sheets("Blad1")
    Range("G71:DI71").Copy .Cells(cFind.Row, rFind.Column) _
        .Resize(, .Range("G71:DI71").Columns.Count)
End With

Если вы хотите проверить, открыта ли рабочая книга, вы можете использовать это:

  Const wbName As String = "Bureauplanning.xls"
  Dim wb As Workbook

 ' Check if workbook is open.
  For Each wb In Workbooks
    If wb.Name = wbName Then Exit For
  Next
  If wb Is Nothing Then Set wb = Workbooks.Open(Bureauplanning)
0 голосов
/ 14 декабря 2018

Я не знаю, какая у вас вторая рабочая тетрадь или лист, так что вам придется заполнить «?».Я бы также поместил книгу, с которой вы копируете, перед Sheets («Blad1»).Но вот базовая вставка копии с использованием переменных.

Листы ("Blad1"). Диапазон ("G13: DI13"). Назначение копирования: = Рабочая книга (?). Листы (?). Ячейки (rFind, cFind)

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