Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

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

Автор yabka, 28.04.2011, 10:32

« назад - далее »

yabka

Есть файл, который подгружает из внешний программы данные (имя клиента, время заказа, тип заказа и т.д.). Файл прикладываю.

В нем есть несколько макросов. Один из них - это привязанный к кнопке макрос сохранения файла. Так вот - при сохранении сейчас происходит следующее: некоторые поля сохраняются корректно, а некоторые поля имеют вид #ИМЯ?. Т.е. в файле остается привязка к каким-то данным и формулам. Как сделать чтобы при срабатывании макроса сохранения файла сохранялись только значения полей, а не связи и формулы?

Макрос сохранения (немного кривой, делал по одному из примеров, но работает):

Sub SaveThisBook3()
Dim FolderName2 As Range
 Set FolderName2 = ThisWorkbook.Worksheets("Лист1").Range("G1")
Dim PathToSave As String, FolderName As String, FellPathToSave As String
Dim fs As Object
PathToSave = "P:\2011\!Print\" '<--------------- Здесь укажи путь к папке в которую нужно сохранить книгу
FolderName = FolderName2 '<--------------- Здесь задай название папки
FellPathToSave = PathToSave & FolderName & "\"
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FolderExists(FellPathToSave) Then
  fs.CreateFolder (FellPathToSave)
End If
Application.ThisWorkbook.SaveAs FellPathToSave & FolderName2 & ".xls"
End Sub

Andrey Lenets

Цитата: yabka от 28.04.2011, 10:32
Как сделать чтобы при срабатывании макроса сохранения файла сохранялись только значения полей, а не связи и формулы?
в конкретных ячейках или на всём листе?
если на всём листе, можно через копирование, например:
    Cells.Copy
    Cells.PasteSpecial Paste:=xlPasteValues
    Cells(1, 1).Select

это код нужно добавить непосредственно перед сохранением файла...

yabka