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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2010, 21:10   #1
Eugenio
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 15
По умолчанию Копирование значений и форматирования

Доброго времени суток, всем! Столкнулся с проблемой при написании макроса... Не получается копировать значения ячейки, в которой содержится формула, и одновременно требуется скопировать стиль форматирования ячейки. В экселе есть только функция xlPasteValuesAndNumberFormats но это мне не подходит, так как копирую текст.
Спасибо.
Eugenio вне форума Ответить с цитированием
Старый 18.03.2010, 23:58   #2
Fierce
Пользователь
 
Регистрация: 11.04.2009
Сообщений: 29
По умолчанию

Вот пример, копируем из ячейки А1 в ячейку А2
Код:
Range("A1").Copy
With Range("A2")
    .PasteSpecial xlPasteValues
    .PasteSpecial xlPasteFormats
End With
Application.CutCopyMode = False
Fierce вне форума Ответить с цитированием
Старый 20.03.2010, 12:29   #3
Eugenio
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 15
По умолчанию

Fierce, спасибо!

Появилась новая загвоздка, не пойму в чем дело... Копирование значений должно происходит с одного листа в другой через заданный интервал времени. И все нормально пока интервал в районе 15 секунд, а когда ставлю 1 минуту начинаются глюки, скопированное вставляется 3-4 раза. А мне нужно вообще 15 минут интервала. Вот код:


Sub Copy_lines()
Dim i As Integer
Dim shift As Date
shift = Second.Range("D2").Text
i = Third.UsedRange.Row + Third.UsedRange.Rows.Count
If i > 1 And First.ToggleButton1.Value = True Then
Third.Range("A" & i).Value = First.Range("B3")
Third.Range("B" & i).Value = First.Range("B4")
End If
Application.OnTime Time() + TimeValue(shift), "Copy_lines"
End Sub

Почему начинает глючить? Спасибо.
Eugenio вне форума Ответить с цитированием
Старый 20.03.2010, 13:31   #4
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

shift = Second.Range("D2").Text - это что за зверь? что делать должен?

может все таки

shift = Second(val(Range("D2").Text))
Dophin вне форума Ответить с цитированием
Старый 20.03.2010, 14:18   #5
Eugenio
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Dophin Посмотреть сообщение
shift = Second.Range("D2").Text - это что за зверь? что делать должен?

может все таки

shift = Second(val(Range("D2").Text))
Все может быть, я не спец в экселе, поэтому и спрашиваю
shift - это переменная куда загоняется интервал, введенный в ячейку D2, в формате HH:MM:SS.
Eugenio вне форума Ответить с цитированием
Старый 20.03.2010, 19:15   #6
Eugenio
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 15
По умолчанию

Гм, нет. У меня выдает ошибку 438(object doesnt support this property or method), когда пишу так:
shift = Second(val(Range("D2").Text))
Продолжаются глюки... вставляет строку несколько раз...
Eugenio вне форума Ответить с цитированием
Старый 20.03.2010, 20:04   #7
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

ну файл то мы дождемся? не?
Dophin вне форума Ответить с цитированием
Старый 20.03.2010, 20:49   #8
Eugenio
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 15
По умолчанию

Конечно, нет проблем, просто я думал, что ошибку сразу в коде видно будет...
Вложения
Тип файла: rar exl1.rar (24.2 Кб, 12 просмотров)
Eugenio вне форума Ответить с цитированием
Старый 20.03.2010, 21:12   #9
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

вставьте в код кнопки вместо
Код:
call copy_lines
это

Код:
shift = Second.Range("D2").Text
Application.OnTime Time() + TimeValue(shift), "Copy_lines"
а то у Вас по нажатию кнопки выполняется макрос копирования, а в конец дается команда выполнить его еще через N секунд
Dophin вне форума Ответить с цитированием
Старый 20.03.2010, 21:26   #10
Eugenio
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 15
По умолчанию

Теперь еще стало по-другому глючить... при интервале 5 сек все отлично, ставлю 1 минуту: вставляет две строчки, через секунд 5 еще одну...
Eugenio вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск значений и копирование при совпадении serafim09 Microsoft Office Excel 2 24.02.2010 13:36
Сравнение листов в книге, и копирование значений Josser Microsoft Office Excel 10 22.07.2009 08:26
Копирование таблицы без потери форматирования k1r1ch Microsoft Office Excel 3 09.07.2009 11:00
Копирование и вставка значений tae1980 Microsoft Office Excel 7 29.05.2009 09:15
форматирования в Excel_и VVk Общие вопросы Delphi 2 11.07.2008 16:27