写一个EXCEL宏,查找工作表中sheet名字叫中兴通讯成品运输提货单(空运)的sheet,复制并放到新的工作表文件里的第一个sheet,并将新工作表所有sheet的公式内容转换成非公式,新的工作表文件格式用 '中兴通讯成品运输提货单(空运)-'做前缀,提取新工作簿B3到F3单元格里的内容作为后缀,前缀+后缀重命名工作表,并将新的工作表放到桌面
时间: 2024-03-16 21:42:42 浏览: 110
python 将目录中所有excel合并到一个excel中 openpyxl 复制sheet工作表到另一个工作簿
以下是实现上述需求的Excel宏代码:
```
Sub CopySheetAndConvertFormula()
Dim wb As Workbook
Dim newWb As Workbook
Dim ws As Worksheet
Dim newWs As Worksheet
Dim newName As String
Dim suffix As String
'打开当前工作簿
Set wb = ThisWorkbook
'遍历所有工作表
For Each ws In wb.Worksheets
'判断工作表名称是否匹配
If ws.Name = "中兴通讯成品运输提货单(空运)" Then
'复制工作表到新的工作簿
Set newWb = Workbooks.Add
ws.Copy Before:=newWb.Worksheets(1)
'转换公式为值
For Each newWs In newWb.Worksheets
newWs.Cells.Copy
newWs.Cells.PasteSpecial xlPasteValues
Next newWs
'生成新工作表名称
suffix = newWb.Worksheets(1).Range("B3:F3").Value
newName = "'中兴通讯成品运输提货单(空运)-" & suffix & "'"
'重命名新工作表并保存到桌面
newWb.Worksheets(1).Name = newName
newWb.SaveAs "C:\Users\" & Environ("USERNAME") & "\Desktop\" & newName & ".xlsx"
newWb.Close False
Exit For
End If
Next ws
'释放对象
Set newWs = Nothing
Set newWb = Nothing
Set ws = Nothing
Set wb = Nothing
End Sub
```
使用方法:
1. 打开需要操作的Excel文件,按下Alt + F11,打开VBA编辑器。
2. 在左侧的项目窗口中,双击需要操作的工作簿,打开代码编辑窗口。
3. 将以上代码复制到代码编辑窗口中。
4. 按下F5或点击工具栏上的运行按钮,执行宏程序。
注意事项:
1. 请确保原始工作表中有且仅有一个名称为“中兴通讯成品运输提货单(空运)”的工作表。
2. 操作完成后,请检查桌面是否生成了新的Excel文件,并确认文件内容是否正确。
阅读全文