Копирование значений

Программирование на Visual Basic for Applications
Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Копирование значений

Сообщение Ogo10 » 13.08.2007 (Пн) 12:54

Кпирую лист в новый файл:
Sheets("Лист1").Copy
ActiveWorkbook.SaveAs Filename:="C:\Name.xls"

Как сделать так чтобы в копии остались только значения без формул?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.08.2007 (Пн) 13:13

Для каждой ячейки сделай .Value=.Value.
Или выполни специальную вставку, "вставить значения".
Lasciate ogni speranza, voi ch'entrate.

Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Сообщение Ogo10 » 13.08.2007 (Пн) 13:34

А можно пример?

Krasnaja Shapka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 26.10.2006 (Чт) 12:13
Откуда: Киев

Сообщение Krasnaja Shapka » 13.08.2007 (Пн) 14:10

cells.value=cells.value
Если ясность вашего объяснения исключает ложное толкование, все равно кто-то поймет вас неправильно.

Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Сообщение Ogo10 » 13.08.2007 (Пн) 14:53

нет, так не выходит

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 13.08.2007 (Пн) 17:44

Ogo10 писал(а):нет, так не выходит


Если правильно делать, то должно выходить. Или формулы не в ячейках?
Код: Выделить всё
Sub test()
    ThisWorkbook.Sheets("Лист1").Copy
    With ActiveSheet.UsedRange
        .Value = .Value
        .Parent.Parent.SaveAs Filename:="C:\Name.xls"
    End With
End Sub
Привет,
KL

Krasnaja Shapka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 26.10.2006 (Чт) 12:13
Откуда: Киев

Сообщение Krasnaja Shapka » 13.08.2007 (Пн) 19:08

или попробуй
Код: Выделить всё
      MySheet.Copy
      MySheet.PasteSpecial xlPasteValues
Если ясность вашего объяснения исключает ложное толкование, все равно кто-то поймет вас неправильно.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 13.08.2007 (Пн) 20:56

Krasnaja Shapka писал(а):или попробуй
Код: Выделить всё
      MySheet.Copy
      MySheet.PasteSpecial xlPasteValues


скорее так:

Код: Выделить всё
Sub test()
    ActiveSheet.Copy
    With ActiveSheet.Cells
        .Copy
        .PasteSpecial xlPasteValues
    End With
    Application.CutCopyMode = False
End Sub
Привет,
KL

Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Сообщение Ogo10 » 14.08.2007 (Вт) 9:47

Спасибо всем! :)
Сделал так:

Код: Выделить всё
Private Sub CommandButton1_Click()
Worksheets(Array("Лист1")).Copy
    With ActiveSheet.UsedRange
        .Value = .Value
    End With
ActiveWorkbook.SaveAs Filename:="C:\Name.xls"
End Sub


Этим добился того чего хотел.

Pavel55
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 27.10.2006 (Пт) 20:11

Сообщение Pavel55 » 15.08.2007 (Ср) 20:37

А зачем вам тут массив с одной переменной?
Код: Выделить всё
Worksheets(Array("Лист1")).Copy


Думаете так работать не будет?

Код: Выделить всё
Worksheets("Лист1").Copy


Вернуться в VBA

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

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

    TopList