Можно ли условно l oop просмотреть таблицу / набор значений из одного листа в книге Excel на другой лист? - PullRequest
0 голосов
/ 30 января 2020

У меня есть книга 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». Может кто-нибудь сказать мне, где я иду не так?

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