Получение значений в виде формул в VBA

#excel #vba #loops #excel-formula

Вопрос:

Первый раз спрашиваю здесь:

У меня есть две книги в Excel. Один из них связан с внешним источником данных, поэтому он обновляется (сначала называется). Другой происходит от первого (называемого Вторым). Теперь я пытаюсь сделать две вещи:

  1. Этот второй работает в столбце имя, читает это имя, затем переходит к Первому, работает в столбце имя, пока не найдет совпадение, затем
  2. Три ячейки данных в строке с именованным элементом копируются и вставляются в соответствующие ячейки за секунду, но они являются формулами, поэтому при первом обновлении вторая будет обновляться новыми номерами.

Мне удалось запустить его (по крайней мере, с первой строкой ячеек), но строка: ActiveCell.Formula = "='ID.Range("L" amp; C)'" говорит мне, что он ожидает оператора end.

Это суммирование того, что я хочу: «‘Если B2 = B2, то Скопируйте L2: M2, вставьте в D3:F3» если нет, продолжайте, пока B2=B2, затем Скопируйте и =Вставьте

 Sub QTY_Fill_2() Dim i As Long Dim j As Long Dim C As Integer Dim X As String Dim Y As String Dim D As Integer Static DD_Name As String Static Name As String Dim ID_Name As Variant Dim ID As Worksheet Dim DD As Worksheet Dim ID_Item_No As String Dim DD_Item_No As String  Set ID = Workbooks("First").Sheets("Sheet1") Set DD = Workbooks("Second").Sheets("Inventory")  For j = 2 To 2 G = j DD_Name = DD.Range("B" amp; G).Value MsgBox ("DD_Name =" amp; DD_Name)   For i = 2 To 2  C = i Workbooks("First").Worksheets("Sheet1").Activate ID_Name = ID.Range("B" amp; C).Value MsgBox ("ID_Name =" amp; ID_Name) If DD_Name = ID_Name Then MsgBox ("Names Match") If DD_Name lt;gt; ID_Name Then MsgBox ("No match") If DD_Name = ID_Name Then ID.Range("L" amp; C).Copy  DD.Activate Range("D" amp; C).Select ActiveCell.Formula = "='ID.Range("L" amp; C)'"  Next i Next j End Sub  

Комментарии:

1. ActiveCell.Formula = "=" amp; ID.Range("L" amp; C).Address(1,1,xlA1,1)

2. Отлично! Это сработало. Теперь самое сложное. Как мне сравнить имена, а затем использовать соответствующий номер строки? Т. е. Данные из 10-й строки Первого документа копируются в 10-ю строку Второго документа, но элементы не совпадают, поэтому вставляются неверные данные. Поэтому, пока он проверяет совпадающие имена, он не связывает номер строки совпадения и не вставляет соответствующие данные.

3. Я думаю, что понял, я хочу использовать G для второго листа и J для первого в координатах ячейки.