Sub CopySheetAndConvertFormulas() Dim ws As Worksheet, newWb As Workbook Dim suffix As String, newFileName As String ' 获取当前工作表中名为 "中兴通讯成品运输提货单(空运)" 的工作表 On Error Resume Next Set ws = Worksheets("中兴通讯成品运输提货单(空运)") If ws Is Nothing Then MsgBox "未找到名为 '中兴通讯成品运输提货单(空运)' 的工作表。" Exit Sub End If ' 复制工作表到新的工作簿 Set newWb = Workbooks.Add ws.Copy Before:=newWb.Worksheets(1) ' 将新工作表的所有公式转换为非公式 For Each ws In newWb.Worksheets ws.Cells.Copy ws.Cells.PasteSpecial xlPasteValues Application.CutCopyMode = False Next ' 获取后缀和新文件名 suffix = newWb.Worksheets(1).Range("B3").Value If newWb.Worksheets(1).Range("B3").MergeCells Then suffix = newWb.Worksheets(1).Range("B3").MergeArea.Value End If newFileName = "中兴通讯成品运输提货单-" & suffix & ".xlsx" ' 保存新的工作簿并重命名工作表 newWb.SaveAs "C:\Users\DELL\Desktop\ZTE TRUCK\中兴通讯成品运输提货单\" & newFileName newWb.Worksheets(1).Name = suffix ' 关闭新的工作簿 newWb.Close SaveChanges:=False MsgBox "已完成操作。" End Sub
时间: 2024-02-14 18:23:29 浏览: 68
这是一段 VBA 代码,它的作用是将当前工作簿中名为 "中兴通讯成品运输提货单(空运)" 的工作表复制到一个新的工作簿中,并将新工作簿中所有工作表的公式转换为非公式。然后根据新的工作表中的信息,生成一个新的文件名,将新的工作簿保存到指定位置,并将工作表重命名为新文件名中的后缀。最后关闭新的工作簿并弹出一个消息框表示操作已完成。
相关问题
写一个EXCEL宏,查找工作表中sheet名字叫中兴通讯成品运输提货单(空运)的sheet,复制并放到新的工作表文件里的第一个sheet,并将新工作表所有sheet的公式内容转换成非公式,新的工作表文件格式用 中兴通讯成品运输提货单(空运)- 做前缀,提取新工作簿B3单元格里的内容作为后缀,前缀+后缀重命名工作表,并将新的工作表文件放到C:\Users\DELL\Desktop\ZTE TRUCK\中兴通讯成品运输提货单
以下是对应的 EXCEL VBA 宏代码:
```
Sub CopySheetAndConvertFormulas()
Dim ws As Worksheet, newWb As Workbook
Dim suffix As String, newFileName As String
' 获取当前工作表中名为 "中兴通讯成品运输提货单(空运)" 的工作表
On Error Resume Next
Set ws = Worksheets("中兴通讯成品运输提货单(空运)")
If ws Is Nothing Then
MsgBox "未找到名为 '中兴通讯成品运输提货单(空运)' 的工作表。"
Exit Sub
End If
' 复制工作表到新的工作簿
Set newWb = Workbooks.Add
ws.Copy Before:=newWb.Worksheets(1)
' 将新工作表的所有公式转换为非公式
For Each ws In newWb.Worksheets
ws.Cells.Copy
ws.Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next
' 获取后缀和新文件名
suffix = newWb.Worksheets(1).Range("B3").Value
If newWb.Worksheets(1).Range("B3").MergeCells Then
suffix = newWb.Worksheets(1).Range("B3").MergeArea.Value
End If
newFileName = "中兴通讯成品运输提货单-" & suffix & ".xlsx"
' 保存新的工作簿并重命名工作表
newWb.SaveAs "C:\Users\DELL\Desktop\ZTE TRUCK\中兴通讯成品运输提货单\" & newFileName
newWb.Worksheets(1).Name = suffix
' 关闭新的工作簿
newWb.Close SaveChanges:=False
MsgBox "已完成操作。"
End Sub
```
请按照以下步骤操作:
1. 打开需要操作的 EXCEL 文件,按下 `Alt + F11` 进入 VBA 编辑器;
2. 在 VBA 编辑器中,选择 `插入` - `模块`,将上述代码复制粘贴进去;
3. 返回 EXCEL 文件,按下 `Alt + F8` 打开宏窗口,选择刚刚创建的宏,点击 `运行` 按钮即可。
在运行宏程序之前,请确保当前 EXCEL 文件中含有名为 "中兴通讯成品运输提货单(空运)" 的工作表,并且 B3 单元格中包含了新工作表的后缀信息。此外,如果 B3 单元格是合并单元格,也需要将代码中相关部分修改为之前提供的代码。
在保存新的工作簿时,需要将文件保存到 `C:\Users\DELL\Desktop\ZTE TRUCK\中兴通讯成品运输提货单` 目录下,并使用 `中兴通讯成品运输提货单-` 作为文件名前缀。
希望这个宏程序能够帮到你,如有任何问题,请随时联系我。
阅读全文