
У меня есть таблица Excel с некоторыми встроенными макросами для извлечения данных из базы данных. Я хотел бы сохранить таблицу Excel и отправить ее кому-нибудь, сохранив при этом данные. Однако, поскольку она использует макросы, данные теряются при отправке файла, так как он не может подключиться к базе данных.
Есть ли способ сохранить/отправить этот файл без макросов, чтобы все данные были статичными?
решение1
Сохранение в виде файла .csv должно сохранить только значения данных ячеек и ничего больше (даже формул). После этого вы можете сохранить как файл .xls из вашего нового файла .csv, если вы предпочитаете этот формат.
решение2
Вот код, который сохранит файл:
Option Explicit
Sub SaveValuesToDisconnectedFile()
Sheets("Sheet1").Copy
Sheets("Sheet1").Name = "DataFromDB"
ActiveSheet.UsedRange.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues
ActiveWorkbook.SaveAs Filename:="C:\Temp\Offline Data.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
Замените «Лист1» на имя листа, содержащего ваши данные. Вы также можете заменить путь к месту, где вы хотите сохранить файл.
Обратите внимание: если вы запустите эту команду дважды, файл уже будет существовать, поэтому вам будет предложено либо отменить операцию, либо перезаписать существующий файл.