Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скопировать данные из части строки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать данные из части строки (Макросы/Sub)
Скопировать данные из части строки
ovechkin1973 Дата: Воскресенье, 18.02.2018, 16:47 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
есть необходимость скопировать данные с форматами ячейки из строки Q столбцов с 13-го по 43-ий и вставить в строку ниже, которую я добавляю кодом
[vba]
Код
Rows(q + 1).Insert Shift:=xlDown
[/vba]
Если я правильно понял варианты предложенные в инете, то нужно задать диапазон и объявил диапазон
[vba]
Код
Dim myRange As Range
[/vba]
После присвоил переменной диапазон
[vba]
Код
Set myRange = Range(Cells(q, 13), Cells(q, 43))
[/vba]
потом данные вставляю в новую строке, но получается не то, что хочу совершенно (все сдвинутым выходит и части данных я не вижу, которые нужно переносить). Я конечно могу объявить 31 переменную и копировать каждую ячейку в строке по отдельности, но думаю даже для моего опыта это будет не верный подход.
Вставлял так
[vba]
Код
myRange.Range(Cells(q, 13), Cells(q, 43)).Copy Range(Cells(q + 1, 13), Cells(q + 1, 43))
[/vba]


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

Сообщение отредактировал ovechkin1973 - Воскресенье, 18.02.2018, 16:47
 
Ответить
Сообщениеесть необходимость скопировать данные с форматами ячейки из строки Q столбцов с 13-го по 43-ий и вставить в строку ниже, которую я добавляю кодом
[vba]
Код
Rows(q + 1).Insert Shift:=xlDown
[/vba]
Если я правильно понял варианты предложенные в инете, то нужно задать диапазон и объявил диапазон
[vba]
Код
Dim myRange As Range
[/vba]
После присвоил переменной диапазон
[vba]
Код
Set myRange = Range(Cells(q, 13), Cells(q, 43))
[/vba]
потом данные вставляю в новую строке, но получается не то, что хочу совершенно (все сдвинутым выходит и части данных я не вижу, которые нужно переносить). Я конечно могу объявить 31 переменную и копировать каждую ячейку в строке по отдельности, но думаю даже для моего опыта это будет не верный подход.
Вставлял так
[vba]
Код
myRange.Range(Cells(q, 13), Cells(q, 43)).Copy Range(Cells(q + 1, 13), Cells(q + 1, 43))
[/vba]

Автор - ovechkin1973
Дата добавления - 18.02.2018 в 16:47
doober Дата: Воскресенье, 18.02.2018, 17:03 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
А так?[vba]
Код
Range(Cells(q, 13), Cells(q, 43)).Copy Cells(q, 13).Offset(1, 0)
[/vba]


 
Ответить
СообщениеА так?[vba]
Код
Range(Cells(q, 13), Cells(q, 43)).Copy Cells(q, 13).Offset(1, 0)
[/vba]

Автор - doober
Дата добавления - 18.02.2018 в 17:03
Pelena Дата: Воскресенье, 18.02.2018, 17:05 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
попробуйте так
[vba]
Код
myRange.Copy Range(Cells(q + 1, 13), Cells(q + 1, 43))
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениепопробуйте так
[vba]
Код
myRange.Copy Range(Cells(q + 1, 13), Cells(q + 1, 43))
[/vba]

Автор - Pelena
Дата добавления - 18.02.2018 в 17:05
ovechkin1973 Дата: Воскресенье, 18.02.2018, 17:19 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
А так?

doober, Отлично! Благодарю..
Pelena, Ваша правка мой код тоже оживили и все сработало. Вариант doober, из одной строки, а тут получается три строки.. объявили диапазон, задали его и потом скопировали.. в чем плюс? И разумеется Спасибо!
Все с Масленицей..


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
А так?

doober, Отлично! Благодарю..
Pelena, Ваша правка мой код тоже оживили и все сработало. Вариант doober, из одной строки, а тут получается три строки.. объявили диапазон, задали его и потом скопировали.. в чем плюс? И разумеется Спасибо!
Все с Масленицей..

Автор - ovechkin1973
Дата добавления - 18.02.2018 в 17:19
ovechkin1973 Дата: Понедельник, 19.02.2018, 19:50 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Range(Cells(q, 13), Cells(q, 43)).Copy Cells(q, 13).Offset(1, 0)
[/vba]

А как можно скопировать допустим данные из с 3 по 13 строку, с 23 по 33 и с 43 по 53 сразу? Можно одной строкой кода по аналогии с вариантом doober,


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

Сообщение отредактировал ovechkin1973 - Понедельник, 19.02.2018, 19:51
 
Ответить
Сообщение[vba]
Код
Range(Cells(q, 13), Cells(q, 43)).Copy Cells(q, 13).Offset(1, 0)
[/vba]

А как можно скопировать допустим данные из с 3 по 13 строку, с 23 по 33 и с 43 по 53 сразу? Можно одной строкой кода по аналогии с вариантом doober,

Автор - ovechkin1973
Дата добавления - 19.02.2018 в 19:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать данные из части строки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!