Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2009, 11:42   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Оптимизировать код копирования

Вот рабочий код код:
Код:
      Worksheets("Шаблоны").Activate
      Range("Участки.шаблон").Cells(6, 2).Select
      Selection.Copy
      Worksheets("Участки").Activate
      Range("Участки_начало").Select
      ActiveCell.Offset(-3, Смещение + 1).Range("A1").Select
      Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Выглядит жутко... Как можно его оптимизировать?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 27.02.2009, 12:08   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Странный код.
Если я правильно понял, то так:
Код:
With Sheets("Участки")
    Sheets("Шаблоны").Cells(6, 2).Copy .Cells(.Range("Участки_начало").Row - 3, .Range("Участки_начало").Column + Смещение + 1)
    End With
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.02.2009, 15:31   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Странный код.
Расскажу подробнее.
Код:
 
'Переключаемся на лист с кодовам именем "шаблоны".
      Worksheets("Шаблоны").Activate
'Из области описанной в переменной "Участки.шаблон" (текущее значение "=Шаблоны!$J$1:$O$8") выбираем ячейку со Cells(6, 2), относительно от начала области.
      Range("Участки.шаблон").Cells(6, 2).Select
      Selection.Copy
'Переключаемся на лист "Участки", и вставляем из буфера обмена в нужную ячейку (интересует формула).
'Координату ячейки куда нужно вставлять, сейчас я рассчитываю так:
'Смещение_уч = ((0 + (Range("Участки_выбор") - 1)) * 6) + 4
'Cells(6, Смещение_уч + 2)
'"Участки_выбор" - Номер участка
      Worksheets("Участки").Activate
      Range("Участки_начало").Select
      ActiveCell.Offset(-3, Смещение + 1).Range("A1").Select
      Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Цитата:
Сообщение от SAS888 Посмотреть сообщение
Если я правильно понял, то так:
Код:
With Sheets("Участки")
    Sheets("Шаблоны").Cells(6, 2).Copy .Cells(.Range("Участки_начало").Row - 3, .Range("Участки_начало").Column + Смещение + 1)
    End With
Sheets("Шаблоны").Cells(6, 2).Copy мы беремза начало отсчета начало листа, а не начала области из переменной.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 27.02.2009, 21:43   #4
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Решение задачи

Всем спасибо кто смотрел...
Отдельно спасибо SAS888, за участие. Задачу решил. Вот код:
Код:
Шаблоны.Range("Участки.шаблон").Cells(6, 2).Copy Участки.Cells(6, Смещение_уч + 1)
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите оптимизировать код tae1980 Microsoft Office Excel 2 11.02.2009 23:24
Оптимизировать код. Манжосов Денис :) Общие вопросы Delphi 1 20.10.2008 19:06
Помогите оптимизировать! Altera Общие вопросы Delphi 6 25.03.2008 20:09
Оптимизировать код NeiL Помощь студентам 2 21.02.2008 08:57
Помогите оптимизировать HTML код после Publisher Гербера HTML и CSS 16 03.12.2007 11:46