写一个EXCEL宏,查找工作表中sheet名字叫中兴通讯成品运输提货单(空运)的sheet,复制并放到新的工作表文件里的第一个sheet,并将新工作表所有sheet的公式内容转换成非公式,新的工作表文件格式用 '中兴通讯成品运输提货单(空运)-'做前缀,提取新工作簿B3单元格里的内容作为后缀,前缀+后缀重命名工作表,并将新的工作表放到桌面
时间: 2024-03-16 14:42:59 浏览: 177
根据excel的档号进行分件,新建档号下的分级文件并将原先的文件,拷贝到新命名的文件夹下。
以下是对应的 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 ThisWorkbook.Path & "\" & newFileName
newWb.Worksheets(1).Name = suffix
' 将新的工作簿放到桌面
FileCopy ThisWorkbook.Path & "\" & newFileName, CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & newFileName
' 关闭新的工作簿
newWb.Close SaveChanges:=False
MsgBox "已完成操作。"
End Sub
```
请按照以下步骤操作:
1. 打开需要操作的 EXCEL 文件,按下 `Alt + F11` 进入 VBA 编辑器;
2. 在 VBA 编辑器中,选择 `插入` - `模块`,将上述代码复制粘贴进去;
3. 返回 EXCEL 文件,按下 `Alt + F8` 打开宏窗口,选择刚刚创建的宏,点击 `运行` 按钮即可。
在运行宏程序之前,请确保当前 EXCEL 文件中含有名为 "中兴通讯成品运输提货单(空运)" 的工作表,并且 B3 单元格中包含了新工作表的后缀信息。此外,如果 B3 单元格是合并单元格,也需要将代码中相关部分修改为之前提供的代码。
希望这个宏程序能够帮到你,如有任何问题,请随时联系我。
阅读全文