У меня есть лист Excel с несколькими макросами, встроенными для получения данных из базы данных. Я хотел бы сохранить лист Excel и отправить его кому-нибудь, сохранив при этом данные. Однако, поскольку он использует макросы, данные теряются при отправке файла, поскольку он не может подключиться к базе данных.

Есть ли способ сохранить / отправить этот файл без макросов, чтобы все данные были статическими?

2 ответа2

1

Сохранение в виде файла .csv должно содержать только значения данных ячеек и ничего больше (даже формул). После этого вы можете сохранить как файл .xls из вашего нового файла .csv, если вы предпочитаете этот формат.

0

Вот код, который сохранит файл для вас:

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

Замените "Sheet1" на имя листа, который содержит ваши данные. Вы также можете заменить путь, куда вы хотите сохранить файл.

Обратите внимание, что если вы запустите это дважды, файл уже будет существовать, поэтому вам будет предложено либо отменить, либо перезаписать существующий файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .