У меня есть мастер-лист в следующем формате: Мастер-лист

Column A          Column B         Column C
No                Description        Price

И несколько листов в формате ниже:

Лист 1

          Column A           Column B
Row 1     Company Name       ABC
Row 2     Delivered to       XYZ
Row 3     Description        ABCXYZ
Row 4     Delivered date     2014
Row 5     Price              $5

Лист 2

          Column A           Column B
Row 1     Company Name       ABC
Row 2     Delivered to       XYZ2
Row 3     Description        TestDesc
Row 4     Delivered date     2014
Row 5     Price              $50

Теперь я хочу, чтобы мастер-лист автоматически получал значения из листов в мастер-лист, как показано ниже:

Column A          Column B         Column C
No                Description        Price
1                 ABCXYZ              $5        (value from sheet 1)
2                 TestDesc            $50       (value from sheet 2)

Не могли бы вы показать мне, как написать код VBA для автоматического обновления. Спасибо

1 ответ1

0

Вы можете сделать это без VBA. Вы можете использовать следующие формулы для всех строк в столбцах B и C вашего основного листа;

=INDIRECT(" 'sheet " & ROW()-1 & " '! " & " B3 ")

=INDIRECT(" 'sheet " & ROW()-1 & " '! " & " B5 ")

Это предполагает, что ваши имена листов - это sheet1, sheet2 и так далее. Если это не так, просто замените 'sheet " & ROW()-1 на то, что соответствует именам ваших листов. Чтобы сделать его более динамичным, вы можете использовать следующую формулу для поиска соответствующих полей на основе заголовка в вашей основной таблице;

=VLOOKUP(B$1, INDIRECT("'sheet"&ROW()-1&"'!"&"A:B"), 2, FALSE)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .