Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Использование Copy-Paste в Excel.Application

Использование Copy-Paste в Excel.Application
Я
   slafor
 
20.08.20 - 16:39
Надо первую строку файла Excel использовать в качестве шаблона при генерации других строк того же файла. Я пишу так:

Эксель.Workbooks.Open(ЭтотОбъект.ИмяФайла);
Эксель.DisplayAlerts = Ложь;    
Лист = Эксель.Worksheets(1);    

И далее:

НомерТекущейСтрокиЭксель = НомерТекущейСтрокиЭксель + 1;
Если НомерТекущейСтрокиЭксель <> НомерПервойСтрокиЭксель Тогда
    Эксель.Rows(НомерПервойСтрокиЭксель).Select();                                                                                                                                                                                                                                        
    Эксель.Rows(НомерПервойСтрокиЭксель).Copy();
    Эксель.Rows(НомерТекущейСтрокиЭксель).Insert();                                                                                                                                                                                               КонецЕсли;

При этом используется буфер обмена? Что будет, если пользователь одновременно с этим захочет использовать буфер обмена для своих целей?

Можно ли как-то иначе скопировать строку для использования ее в качестве шаблона (с сохранением форматирования и т.д.)?
   acht
 
1 - 20.08.20 - 16:53
Поставь брякпоинт, проверь что в буфере, запусти второй сеанс.
Что ж ты такой неуверенный?
   slafor
 
2 - 20.08.20 - 17:07
(1) Там вообще интересная тема, даже без брякпойнта.

Работаю в удаленном сеансе по rdp, там крутится моя обработка. Которая использует буфер обмена.
А в основном сеансе я буфером воспользоваться уже не могу - копирую участок текста, а вставляется - строка из эксель-файла.

Может быть, есть другие способы скопировать строку эксель с сохранением форматирования, без использования копи-паста?
   slafor
 
3 - 20.08.20 - 17:08
В экселе он все копирует правильно.
   acht
 
4 - 20.08.20 - 17:17
(2) > другие способы скопировать строку 
Range("B1").Interior.Color = Range("A1").Interior.Color
и т. п.
   acht
 
5 - 20.08.20 - 17:22
Или вот подсказывают:
Worksheets(2).Range("A1:B2").Value(xlRangeValueXMLSpreadsheet) = Worksheets(1).Range("A1:B2").Value(xlRangeValueXMLSpreadsheet)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.