Вопрос № 163040: Добрый день! Уважаемые эксперты помогите, пожалуйста, написать код программы в VBA которая трансфомировала бы матрицу. Пусть мне дан вектор столбец : 5 мне надо что бы он был записан строкой 5 4 11 20. Заранее большое спасибо! <img src="http://...
Вопрос № 163.040
Добрый день! Уважаемые эксперты помогите, пожалуйста, написать код программы в VBA которая трансфомировала бы матрицу. Пусть мне дан вектор столбец : 5 мне надо что бы он был записан строкой 5 4 11 20. Заранее большое спасибо! 4 11 20
Отправлен: 23.03.2009, 14:54
Вопрос задала: Lenusia (статус: 1-й класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Megaloman
Здравствуйте, Lenusia! Способ 1. У Вас в таблице записан столбец. Вы его транспонируете в строку. Становитесь на клетку, с которой начинается столбец, а затем запускаете макрос.
Код:
i = 0 a = Selection While a <> "" Selection.Offset(0,
i) = Selection.Offset(i, 0) If i <> 0 Then Selection.Offset(i, 0).ClearContents i = i + 1 a = Selection.Offset(i, 0) Wend
Он будет переписывать Ваш столбец в строку до тех пор, пока не встретится пустая ячейка в столбце. Содержимое переписываемых ячеек очищается (кроме начала столбца, оно становится началом строки). Способ 2. Аналогичен способу 1. Но в макросе надо явно указать (или написать окно ввода) число тр
анспонируемых элементов.
Код:
N = 4 For i = 0 To N - 1 Selection.Offset(0, i) = Selection.Offset(i, 0) If i <> 0 Then Selection.Offset(i, 0).ClearContents Next
Есть еще вариант: копировать, а затем сделать спец вставку с транспонированием,
но для этого не надо макрос писать.
--------- Нет времени на медленные танцы
Ответ отправил: Megaloman (статус: Практикант)
Ответ отправлен: 23.03.2009, 15:30
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245869 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Большое вам спасибо!
Отвечает: Botsman
Здравствуйте, Lenusia! Еще можно использовать возможности копи-паста Excel :) Код - в приложении
Приложение:
--------- Хочешь победить Excel? Спроси меня как! ;)
Ответ отправил: Botsman (статус: Студент)
Ответ отправлен: 25.03.2009, 12:03
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 246044 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.