excel - 使用另存为对话框将工作表保存到新工作簿
问题描述
从代码 Excel 首先使用当前工作簿名称和今天日期创建一本新书,并将其保存在同一路径中。
我面临的问题是我想使用“另存为对话框”来保存文件。
当我使用另存为对话框时。我需要先选择路径并创建一个新工作簿,然后将数据粘贴到新工作簿中。
但我不知道如何先创建一个新工作簿并返回当前路径来复制数据。
请帮助我。
Sub MakeReport()
Dim thisBookName As String
Dim newBookName As String
Dim newBookPath As String
Dim todayDate As String
Dim newBook As Workbook
Dim numTests As Integer
Dim shtCount As Integer
Dim ws as worksheets
shtCount = Sheets.Count
' Set input arrays
For Each ws In ThisWorkbook.worksheets
Select Case ws.Name
Case "A", "D", "E" 'Skip these sheets
Case Else
' Procced?
answer = MsgBox("Are you sure you wish to Make Report?", vbYesNo + vbQuestion, "Make Report")
If answer = vbNo Then
Exit Sub
Else
' proceed
End If
' Check if there are data sheet tabs
If shtCount < numTests + 2 Then
MsgBox ("Data not tally")
Exit Sub
End If
' Set new Spreadsheet's name
todayDate = Format(CStr(Now), "yy_mm_dd")
thisBookName = ThisWorkbook.Name
newBookName = Replace(thisBookName, ".xlsm", "") & "_" & todayDate & ".xlsx"
newBookPath = ThisWorkbook.Path & "\" & newBookName
' Copy and paste data tabs into new WorkBook
For i = 1 To numTests + 3
Workbooks(newBook).Sheets(i).Select 'after:=Workbooks(newBookName).Sheets(i)
Next i
' Remove default sheets
Application.DisplayAlerts = False ' Ensure no prompts when deleting tabs with data inside
For i = 1 To 3
Workbooks(newBookName).Sheets(1).Delete
Next i
Application.DisplayAlerts = True ' Turn on prompts again
End Sub
解决方案
推荐阅读
- java - 如何从android studio中的画廊导入图像
- ios - Mac Catalyst:iPad 应用程序中不支持多窗口的多窗口?
- swing - 使用 JAVAFX 作为外部库构建 JAVA 项目的 Runnable Jar
- generics - 如何在 Rust 中将 FnMut 与泛型参数一起使用?
- mysql - Turbofish 无法正确推断类型
- node.js - 从 NODE EXPRESS 在地图集上发布数据的问题
- amazon-web-services - AWS Elasticsearch 端点未经授权
- flutter - 如何在参数中使用var?
- spring - 如何设置 Sprint Boot Camel 日志记录级别?
- c# - 选中复选框时如何将当前模型详细信息的值传递给asp.net mvc中的控制器操作