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

Вход

Регистрация

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

 

= Мир MS Excel/Применить PasteSpecial xlPasteValues - Мир MS Excel

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

Excel 2013
Здравствуйте, данный код копирует нужные строки и вставляет их в определенные листы. Проблема в том, что вставляются данные вместе с формулами, как применить метод PasteSpecial xlPasteValues чтобы в дополнительные листы вставлялись только значения ячеек. Спасибо за помощь.
[vba]
Код
Sub Alex2323()
Dim i&, lstr&, k&, lstrSh&
Application.ScreenUpdating = False
lstr = Cells(Rows.Count, 1).End(xlUp).Row
k = Sheets.Count
For i = 2 To k
'Исключить листы
    If i = 9 Or i = 10 Then GoTo 0
    Sheets(i).Activate
    Range("A2:M500").Clear
0:
Next
Sheets(1).Activate
For i = 2 To lstr

If Cells(i, 2) = "Новый" Or Cells(i, 2) = "Отменен" Or Cells(i, 2) = "Ожидание оплаты" Then GoTo 1
        'скопировать данные
        Cells(i, 1).Offset(, 1).Resize(, 13).Copy
        Sheets(Right(Cells(i, 1), 1) + 1).Activate
        lstrSh = Cells(Rows.Count, 1).End(xlUp).Row
        Cells(lstrSh + 1, 1).Activate
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Sheets(1).Activate
1:
Next
Application.ScreenUpdating = True
End Sub
[/vba]


Сообщение отредактировал Maks1390 - Воскресенье, 04.09.2016, 17:48
 
Ответить
СообщениеЗдравствуйте, данный код копирует нужные строки и вставляет их в определенные листы. Проблема в том, что вставляются данные вместе с формулами, как применить метод PasteSpecial xlPasteValues чтобы в дополнительные листы вставлялись только значения ячеек. Спасибо за помощь.
[vba]
Код
Sub Alex2323()
Dim i&, lstr&, k&, lstrSh&
Application.ScreenUpdating = False
lstr = Cells(Rows.Count, 1).End(xlUp).Row
k = Sheets.Count
For i = 2 To k
'Исключить листы
    If i = 9 Or i = 10 Then GoTo 0
    Sheets(i).Activate
    Range("A2:M500").Clear
0:
Next
Sheets(1).Activate
For i = 2 To lstr

If Cells(i, 2) = "Новый" Or Cells(i, 2) = "Отменен" Or Cells(i, 2) = "Ожидание оплаты" Then GoTo 1
        'скопировать данные
        Cells(i, 1).Offset(, 1).Resize(, 13).Copy
        Sheets(Right(Cells(i, 1), 1) + 1).Activate
        lstrSh = Cells(Rows.Count, 1).End(xlUp).Row
        Cells(lstrSh + 1, 1).Activate
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Sheets(1).Activate
1:
Next
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Maks1390
Дата добавления - 04.09.2016 в 17:47
buchlotnik Дата: Воскресенье, 04.09.2016, 18:15 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
заменить[vba]
Код
.Paste
[/vba]на[vba]
Код
.PasteSpecial Paste:=xlPasteValues
[/vba]


Сообщение отредактировал buchlotnik - Воскресенье, 04.09.2016, 18:15
 
Ответить
Сообщениезаменить[vba]
Код
.Paste
[/vba]на[vba]
Код
.PasteSpecial Paste:=xlPasteValues
[/vba]

Автор - buchlotnik
Дата добавления - 04.09.2016 в 18:15
Maks1390 Дата: Воскресенье, 04.09.2016, 18:26 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
buchlotnik, уже изменял, не срабатывает. Ошибка Run-time error
 
Ответить
Сообщениеbuchlotnik, уже изменял, не срабатывает. Ошибка Run-time error

Автор - Maks1390
Дата добавления - 04.09.2016 в 18:26
buchlotnik Дата: Воскресенье, 04.09.2016, 18:55 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Maks1390, покажите в файле
 
Ответить
СообщениеMaks1390, покажите в файле

Автор - buchlotnik
Дата добавления - 04.09.2016 в 18:55
Maks1390 Дата: Воскресенье, 04.09.2016, 19:16 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Вот файл с примером
К сообщению приложен файл: primer.xls (73.5 Kb)
 
Ответить
СообщениеВот файл с примером

Автор - Maks1390
Дата добавления - 04.09.2016 в 19:16
buchlotnik Дата: Воскресенье, 04.09.2016, 19:17 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
а допёрло: [vba]
Код
Cells(lstrSh + 1, 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues
[/vba]
К сообщению приложен файл: 0753831.xls (70.0 Kb)


Сообщение отредактировал buchlotnik - Воскресенье, 04.09.2016, 19:19
 
Ответить
Сообщениеа допёрло: [vba]
Код
Cells(lstrSh + 1, 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues
[/vba]

Автор - buchlotnik
Дата добавления - 04.09.2016 в 19:17
Maks1390 Дата: Воскресенье, 04.09.2016, 19:21 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
работает, но видимо этот метод мне не подходит, так как он удаляет все кроме значений. Мне нужно удалять именно функции, а цвета, размеры ячеек оставлять.
 
Ответить
Сообщениеработает, но видимо этот метод мне не подходит, так как он удаляет все кроме значений. Мне нужно удалять именно функции, а цвета, размеры ячеек оставлять.

Автор - Maks1390
Дата добавления - 04.09.2016 в 19:21
buchlotnik Дата: Воскресенье, 04.09.2016, 19:27 | Сообщение № 8
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
дык [vba]
Код
Cells(lstrSh + 1, 1).Select
        Selection.PasteSpecial Paste:=xlPasteValues
        Selection.PasteSpecial Paste:=xlPasteFormats
[/vba]
 
Ответить
Сообщениедык [vba]
Код
Cells(lstrSh + 1, 1).Select
        Selection.PasteSpecial Paste:=xlPasteValues
        Selection.PasteSpecial Paste:=xlPasteFormats
[/vba]

Автор - buchlotnik
Дата добавления - 04.09.2016 в 19:27
Maks1390 Дата: Воскресенье, 04.09.2016, 19:30 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
buchlotnik, хм, точно, спасибо за помощь!
 
Ответить
Сообщениеbuchlotnik, хм, точно, спасибо за помощь!

Автор - Maks1390
Дата добавления - 04.09.2016 в 19:30
Maks1390 Дата: Воскресенье, 04.09.2016, 19:49 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Извиняюсь, сразу не подумал спросить. К скопированным данным возможно обратится и пересчитать нужные ячейки?
Пример:
Обратится к скопированным строкам - выбрать ячейки L:L и N:N - посчитать (L:L - N:N) и изменить значение N:N

Чтобы в дополнительные листы попали уже посчитанные значения.


Сообщение отредактировал Maks1390 - Воскресенье, 04.09.2016, 20:08
 
Ответить
СообщениеИзвиняюсь, сразу не подумал спросить. К скопированным данным возможно обратится и пересчитать нужные ячейки?
Пример:
Обратится к скопированным строкам - выбрать ячейки L:L и N:N - посчитать (L:L - N:N) и изменить значение N:N

Чтобы в дополнительные листы попали уже посчитанные значения.

Автор - Maks1390
Дата добавления - 04.09.2016 в 19:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Применить PasteSpecial xlPasteValues (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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