我有一个 Excel 工作表,其中内置了一些宏,可以从数据库中获取一些数据。我想保存 Excel 工作表并将其发送给某人,同时仍保留数据。但是由于它使用了宏,因此当我发送文件时数据会丢失,因为它无法连接到数据库。
有什么方法可以让我不用宏来保存/发送此文件以使数据全部是静态的?
答案1
保存为 .csv 文件应仅保留单元格的数据值,不保留任何其他内容(甚至不保留公式)。之后,如果您喜欢该格式,则可以将新 .csv 文件另存为 .xls 文件。
答案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
将“Sheet1”替换为包含数据的工作表的名称。您还可以将路径替换为要保存文件的位置。
请注意,如果您运行两次,该文件将已经存在,因此系统将提示您取消或覆盖现有文件。