excel - 导出 Activesheet - 仅值
问题描述
我正在使用此代码,它工作正常,但它也复制:
- 公式
- 形状
- 嵌入在工作表上的宏
我正在寻找一种方法来仅复制工作表的值,同时保留其原始格式,然后像我的宏一样关闭新创建的工作簿。
Sub export_sheet()
Dim sourceWB As Workbook
Dim destWB As Workbook
Dim strSourceSheet As Worksheet
Dim strname As String
Dim path As String
Application.DisplayAlerts = False
path = ThisWorkbook.path & "\"
strname = "test_" & Format(Now, "dd_mmm_yy_hh_mm_ss") & ".xlsx"
Set strSourceSheet = ActiveSheet
ThisWorkbook.Sheets(strSourceSheet).Copy
ActiveWorkbook.SaveAs Filename:=path & strname, FileFormat:=51, CreateBackup:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
解决方案
像这样的东西应该适合你:
Sub tgr()
Dim wb As Workbook
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim rFirst As Range
Dim rLast As Range
Dim rDest As Range
Dim sFolderPath As String
Dim sFileName As String
Set wb = ThisWorkbook
Set wsCopy = wb.ActiveSheet
Set rFirst = wsCopy.Cells.Find("*", wsCopy.Cells(wsCopy.Rows.Count, wsCopy.Columns.Count), xlValues, xlPart, , xlNext)
Set rLast = wsCopy.Cells.Find("*", wsCopy.Range("A1"), xlValues, xlPart, , xlPrevious)
sFolderPath = ThisWorkbook.Path & Application.PathSeparator
sFileName = "test_" & Format(Now, "dd_mmm_yy_hh_mm_ss") & ".xlsx"
wb.Worksheets.Add.Move 'create new workbook with a blank worksheet
Set wsDest = ActiveWorkbook.ActiveSheet 'the newly created workbook and sheet will be active because they were just created
With wsDest
Set rDest = .Cells(rFirst.Row, rFirst.Column)
wsCopy.Range(rFirst, rLast).Copy
rDest.PasteSpecial xlPasteValues
rDest.PasteSpecial xlPasteFormats
rDest.PasteSpecial xlPasteColumnWidths
.Parent.SaveAs sFolderPath & sFileName, xlOpenXMLWorkbook
.Parent.Close True
End With
End Sub
推荐阅读
- android-studio - 选项菜单中的图标没有改变
- r - 计算 r 中同一项目的两次出现之间的距离
- python - 如何以自适应浮点精度保存python数组?
- vue.js - onNotification 处理程序 cordova-fcm-plugin-with-dependecy-updated
- angular - 在 Angular 表单上,当 formControl.status === 'DISABLED' 时如何禁用提交按钮
- r - ggplot2:删除轴标签的第一个单词
- python - json_normalize 嵌套数据库
- javascript - 如何使用 Knex 更新具有重复值的数据?
- webstorm - 使用 WebStorm 2021 调试 Quasar V2
- javascript - 如何检查我的谷歌同意实施是否有效?(标签管理器,网站)