У меня есть книга Excel с различными листами данных, и я пытаюсь написать формулу, которая заполняет информацию из одного листа SheetA
в другой SheetB
.
Проблема в том, что SheetA
регулярно обновляется и когда меняется порядок таблицы. Размер таблицы составляет 12x16 (RX C) с заголовками, а первые два столбца в крайнем левом углу содержат два тега идентификатора / категориальных переменных, которые различают guish все числовые значения в ячейках для право на них. В первом столбце есть только 2 разных тега, а во втором - 6 (всего 11 уникальных комбинаций).
Учитывая, что порядок таблицы в SheetA
всегда меняется, кто-нибудь может предложить формулу Excel, которую я мог бы использовать, чтобы получить значения из таблицы в указанную c ячейку в SheetB
Я попытался сделать это с помощью VBA:
Sub formular()
Dim name As Range
Dim produce As Range
Dim TV As Worksheet
Dim TV_UPDATED Worksheet
Dim TV_UPDATED2 As Worksheet
Dim Wokbuk As Workbook
Set Wokbuk = Workbooks("BookofWok.xlsx")
Set TV = Workbooks("BookofWok.xlsx").Worksheets("TV Summary")
Set TV_UPDATED = Workbooks("BookofWok.xlsx").Worksheets("U1")
Set TV_UPDATED2 = Workbooks("BookofWok.xlsx").Worksheets("U2")
For Each name In U1.Range("a2:a12")
If name.Value = "reezy plc" Then
For Each produce In U1.Range("b2:b12")
If produce.Value = "duce1" Then
U1.Range("D4") = produce.Address().Offset(0, 1)
Elseif produce.value = "duce2" Then
U1.Range("D6") = produce.Address().Offset(0, 1)
Elseif produce.value = "duce3" Then
U1.Range("D7") = produce.Address().Offset(0, 1)
Elseif produce.value = "duce4" Then
U1.Range("D8") = produce.Address().Offset(0, 1)
End If
Next produce
Elseif name.value = "yung plc" Then
For Each produce In U2.Range("b2:b12")
If produce.Value = "duce1" Then
U2.Range("D4") = produce.Address().Offset(0, 1)
Elseif produce.value = "duce2" Then
U2.Range("D6") = produce.Address().Offset(0, 1)
Elseif produce.value = "duce3" Then
U2.Range("D7") = produce.Address().Offset(0, 1)
Elseif produce.value = "duce4" Then
U2.Range("D8") = produce.Address().Offset(0, 1)
Elseif produce.value = "" Then
U2.Range("D9") = produce.Address().Offset(0, 1)
End If
Next
End If
Next
End Sub
Но я получил «ошибку компиляции: неверный квалификатор» в «product.address». Может кто-нибудь сказать мне, где я иду не так?