Использование Copy-Paste в Excel.Application
☑
0
slafor
20.08.20
✎
16:39
Надо первую строку файла Excel использовать в качестве шаблона при генерации других строк того же файла. Я пишу так:
Эксель.Workbooks.Open(ЭтотОбъект.ИмяФайла);
Эксель.DisplayAlerts = Ложь;
Лист = Эксель.Worksheets(1);
И далее:
НомерТекущейСтрокиЭксель = НомерТекущейСтрокиЭксель + 1;
Если НомерТекущейСтрокиЭксель <> НомерПервойСтрокиЭксель Тогда
Эксель.Rows(НомерПервойСтрокиЭксель).Select();
Эксель.Rows(НомерПервойСтрокиЭксель).Copy();
Эксель.Rows(НомерТекущейСтрокиЭксель).Insert(); КонецЕсли;
При этом используется буфер обмена? Что будет, если пользователь одновременно с этим захочет использовать буфер обмена для своих целей?
Можно ли как-то иначе скопировать строку для использования ее в качестве шаблона (с сохранением форматирования и т.д.)?
1
acht
20.08.20
✎
16:53
Поставь брякпоинт, проверь что в буфере, запусти второй сеанс.
Что ж ты такой неуверенный?
2
slafor
20.08.20
✎
17:07
(1) Там вообще интересная тема, даже без брякпойнта.
Работаю в удаленном сеансе по rdp, там крутится моя обработка. Которая использует буфер обмена.
А в основном сеансе я буфером воспользоваться уже не могу - копирую участок текста, а вставляется - строка из эксель-файла.
Может быть, есть другие способы скопировать строку эксель с сохранением форматирования, без использования копи-паста?
3
slafor
20.08.20
✎
17:08
В экселе он все копирует правильно.
4
acht
20.08.20
✎
17:17
(2) > другие способы скопировать строку
Range("B1").Interior.Color = Range("A1").Interior.Color
и т. п.
5
acht
20.08.20
✎
17:22
Или вот подсказывают:
Worksheets(2).Range("A1:B2").Value(xlRangeValueXMLSpreadsheet) = Worksheets(1).Range("A1:B2").Value(xlRangeValueXMLSpreadsheet)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.