Ссылка на предыдущий лист в Excel

Программирование на Visual Basic for Applications
Sweety
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.05.2004 (Чт) 8:38
Откуда: Москва

Ссылка на предыдущий лист в Excel

Сообщение Sweety » 03.12.2004 (Пт) 14:42

Всем привет. Нужна помощь.
В Excel на Листе1 данные, из них мне нужны только те строки, которые отвечают условию, их надо перенести на Лист2.

For i = 9 To List.UsedRange.Rows.Count
If InStr(List.Cells(i, 2).Value, "Город") > 0 Then

End If
Next

Копированием не получается, так как в этих строчках формулы, после копирования остаются одни нули.

Получается надо через ссылку на Лист1. Как это можно сделать?

Заранее огромное спасибо!
Безмолвное дело лучше бесполезного слова.

gacol
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 02.11.2004 (Вт) 13:13
Откуда: Нов. Уренгой

Сообщение gacol » 03.12.2004 (Пт) 15:00

Воспользуйся спец.вставкой (только значения), например вставить скопированную строку на 3-ю в Лист2
Sheets("Лист2").Rows("3:3").PasteSpecial Paste:=xlValues

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 06.12.2004 (Пн) 13:35

Метод PasteSpecial - это не просто вставка из буфера, а специальная вставка. Если использовать параметр Paste:=xlPasteValues, то вставляются как раз только значения чисел, а форматы не меняются. Так что при таком копировании все ОК.

Sweety
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.05.2004 (Чт) 8:38
Откуда: Москва

Сообщение Sweety » 06.12.2004 (Пн) 14:13

Огромное спасибо.
Через специальную вставку все получилось :)

Единственное что, формат ячеек не сохраняется :cry:
Безмолвное дело лучше бесполезного слова.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 06.12.2004 (Пн) 15:39

А для того, чтобы форматы сохранялись, нужно после того, как вставились значения, выполнить еще раз PasteSpecial, но на этот раз с параметром Paste:=xlPasteFormats, тогда с предыдущего листа скопируются форматы ячеек. Если нужен только формат чисел, можно один раз сделать PasteSpecial с параметром Paste:=xlPasteValuesAndNumberFormats.

gacol
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 02.11.2004 (Вт) 13:13
Откуда: Нов. Уренгой

Сообщение gacol » 07.12.2004 (Вт) 8:16

Паша К. спасибо. Я стал пользоваться твоим методом.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList