的解决方案如下:
首先,我们需要使用VBA编写一个宏来实现这个功能。打开Excel文件,按下Alt+F11打开VBA编辑器,然后在左侧的项目窗口中选择要操作的工作簿,右键点击并选择"插入"->"模块",在新建的模块中编写以下代码:
Sub CopyWorksheetToNewWorkbook()
Dim ws As Worksheet
Dim newWorkbook As Workbook
Dim lastRow As Long
' 获取当前活动工作表
Set ws = ActiveSheet
' 获取最后一个非空单元格所在行
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 创建新工作簿
Set newWorkbook = Workbooks.Add
' 将当前工作表复制到新工作簿
ws.Copy Before:=newWorkbook.Sheets(1)
' 删除新工作簿中除第一个工作表外的其他工作表
Application.DisplayAlerts = False
While newWorkbook.Sheets.Count > 1
newWorkbook.Sheets(2).Delete
Wend
Application.DisplayAlerts = True
' 保存新工作簿
newWorkbook.SaveAs "新工作簿路径及名称.xlsx"
' 关闭新工作簿
newWorkbook.Close
' 清空对象引用
Set newWorkbook = Nothing
Set ws = Nothing
End Sub
在上述代码中,我们首先声明了一些变量,包括当前工作表(ws)、新工作簿(newWorkbook)和最后一个非空单元格所在行(lastRow)。然后,我们使用ActiveSheet
获取当前活动工作表。接下来,我们使用Cells
和End(xlUp)
方法来获取最后一个非空单元格所在行。然后,我们使用Workbooks.Add
创建一个新的工作簿,并将当前工作表复制到新工作簿中的第一个位置。最后,我们使用SaveAs
方法保存新工作簿,并关闭它。
请注意,你需要将代码中的"新工作簿路径及名称.xlsx"替换为你想要保存新工作簿的路径和名称。
这个解决方案适用于需要将当前工作表复制到新工作簿中的情况,例如将数据分离到不同的工作簿中进行处理或分发。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体的产品选择应根据实际需求进行评估。
领取专属 10元无门槛券
手把手带您无忧上云