циклическое копирование строк и вставка их на другой лист в VBA Excel - PullRequest
0 голосов
/ 19 декабря 2011

Я пытаюсь скопировать и вставить эти строки - по одной за раз в VBA

Name    Col1            Col 2            Col 3
Tom     LTD - 617   LTD - 2236  LTD - 964
David   LTD - 289   LTD - 045   LTD - 055
Peter   LTD - 112   LTD - 687   LTD - 899

Мне нужно транспонировать и вставлять значение для каждой строки в одном и том же столбце, как этот

Tom
LTD - 617
LTD - 2236
LTD - 964

Есть ли в VBA цикл do, который может помочь мне достичь этого?

Мне нужна версия VBA, как это сделать, поскольку я автоматизирую этот лист, мой пример более сложный, но я хочуЭто можно проиллюстрировать простым примером, подобным приведенному выше.Может кто-нибудь предложить решение VBA - мне нужно понять, как вы зацикливаете подробные строки по одному за раз и выводите их в другое место и положение.

1 Ответ

0 голосов
/ 19 декабря 2011

Если ваша исходная таблица настолько симметрична, как предполагает ваш вопрос, и если это однократное преобразование, я бы использовал формулы для организации транспонирования.Если что-то из этого не соответствует действительности, для неадекватного вопроса это будет -1.

Я предполагаю, что ваша исходная таблица начинается в ячейке A1, и ничто не мешает мне использовать столбец F.

Вставитьследующее в ячейки F2: F5

=INDIRECT(ADDRESS((ROW(F2)-2)/4+2,1,4))
=INDIRECT(ADDRESS((ROW(F3)-3)/4+2,2,4))
=INDIRECT(ADDRESS((ROW(F4)-4)/4+2,3,4))
=INDIRECT(ADDRESS((ROW(F5)-5)/4+2,4,4))

Это установит ячейку F2: F5 в значения из строки 2. Скопируйте этот блок из 4 ячеек (повторяющийся блок из 4 ячеек, а не ячейка F5) донеобходимо.Значения, которые вы ищете, будут в столбце в виде формул .

Используйте специальные значения для копирования и вставки, чтобы получить значения, которые вы ищете, как values ​​.

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