写一个EXCEL宏,将当前sheet另存到桌面为一个新的工作表,并将新工作表所有单元格里带公式的内容变为文本内容,文件用当前sheet名字命名
时间: 2024-03-09 13:50:07 浏览: 108
工作簿中另存指定工作表并以单元格数据命名
4星 · 用户满意度95%
好的,以下是该宏的代码:
```VBA
Sub SaveAsText()
Dim mySheet As Worksheet
Dim newSheet As Workbook
Dim savePath As String
Dim saveName As String
' 获取当前工作表和保存路径及文件名
Set mySheet = ActiveSheet
savePath = Environ("USERPROFILE") & "\Desktop\"
saveName = mySheet.Name & ".xlsx"
' 将所有公式转为文本
mySheet.Cells.Copy
mySheet.Cells.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, True
' 另存为新工作表
Set newSheet = Workbooks.Add
mySheet.Cells.Copy newSheet.Sheets(1).Cells
newSheet.SaveAs Filename:=savePath & saveName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
newSheet.Close
' 恢复原工作表
Application.CutCopyMode = False
End Sub
```
使用方法:
1. 打开需要操作的工作表
2. 按下 `Alt + F11` 进入 VBA 编辑器
3. 将上述代码复制粘贴进 VBA 窗口中
4. 按下 `F5` 运行宏
5. 等待宏执行完成后,在桌面上会生成一个新的工作表文件,文件名为当前工作表的名字,其中所有公式已经转为文本。原工作表不受影响。
阅读全文