Макрос Excel анализирует данные из нескольких листов (с именами листов) - PullRequest
0 голосов
/ 01 сентября 2011

Я немного обыскал, но не смог найти решение именно этой проблемы.Все остальные темы о копировании данных из нескольких рабочих листов, которые мне удалось найти, пытались объединить все данные из рабочих таблиц в одну.Однако я не смог адаптировать коды под свои нужды.

У меня есть рабочая книга с переменным количеством рабочих таблиц.Существует два фиксированных листа «ошибки» и «не ошибки», а также ряд других листов, точное количество которых будет варьироваться (как и имена листов).Если вам интересно, рабочие листы создаются другим макросом в результате определенного ввода данных, поэтому в зависимости от характера ввода число / имена будут отличаться при каждом запуске программы.Таким образом, макет этих таблиц является стандартным для всех них, данные, которые мне нужны, находятся в одном наборе ячеек на каждом листе.

Существует небольшой диапазон данных (содержащих формулы, но мне нужны только значения, которые выводятся формулами, а не сами формулы) на каждом из этих листов, которые мне нужно скопировать на новый лист подстолбец, заголовок заголовка которого является именем рабочего листа, с которого поступил набор данных.Я запускаю симуляцию по методу Монте-Карло, поэтому мне нужен этот довольно специфический набор данных.

Итак, скажем, каждая из переменных таблиц настроена так:

(Имя рабочей таблицы:hotel)

Columns: A      B       C       D
        data   data    DATA    DATA

Данные все числовые.Данные в нижнем регистре - это то, что мне не нужно, в верхнем регистре - это то, что мне нужно.

Я хочу иметь возможность получать данные из каждой из этих таблиц и копировать их в новую таблицу.это выглядит примерно так (точная разметка не важна, на самом деле, я знаю достаточно о макросах Excel для точной настройки разметки, я просто не знаю, как выполнить этот тип синтаксического анализа):1016 * ДАННЫЕ C и DATA D - это ДАННЫЕ из столбцов C и D исходного листа, как я объяснил выше.

В любом случае, кто-нибудь может мне помочь с этим?

Я извиняюсь, чтоУ меня нет кода для предоставления, но я буквально в полной растерянности относительно того, как это завершить.Даже если вы просто укажете мне правильное направление, я буду вам очень признателен.

1 Ответ

0 голосов
/ 01 сентября 2011

Воздушный код высокого уровня будет выглядеть примерно так:
Подсчитать количество рабочих листов данных (nSheets) измерение варианта массива:
Dim Ansa () как вариант
Redim Ansa (2, nSheets)
Затем зациклите таблицы данных, получите значение 2 ячеек и поместите их в массив вариантов,
Затем запишите массив вариантов на новый лист

...