写一个EXCEL宏,查找工作表中sheet名字叫中兴通讯成品运输提货单(空运)的sheet,复制生成新的工作表,并将所有公式内容转换成非公式,新生成的表格放到桌面,并用中兴通讯成品运输提货单(空运)+B3单元格内容重命名
时间: 2024-03-15 08:47:25 浏览: 94
好的,以下是对应的Excel宏代码:
```vb
Sub CopySheetAndConvertFormula()
Dim sheetName As String
Dim newSheetName As String
Dim newWorkbook As Workbook
Dim newWorksheet As Worksheet
' 设置要查找的sheet名
sheetName = "中兴通讯成品运输提货单(空运)"
' 查找sheet
Dim sheetFound As Boolean
sheetFound = False
For Each sheet In ThisWorkbook.Worksheets
If sheet.Name = sheetName Then
sheetFound = True
Exit For
End If
Next sheet
' 如果找到了,复制并转换公式
If sheetFound Then
' 复制sheet
Set newWorkbook = Workbooks.Add
ThisWorkbook.Worksheets(sheetName).Copy Before:=newWorkbook.Worksheets(1)
Set newWorksheet = newWorkbook.Worksheets(1)
' 将所有公式转换为非公式
newWorksheet.Cells.Copy
newWorksheet.Cells.PasteSpecial xlPasteValues
' 重命名新生成的表格
newSheetName = sheetName & "+" & Range("B3").Value
newWorksheet.Name = newSheetName
' 将新表格保存到桌面
Dim desktopPath As String
desktopPath = Environ("USERPROFILE") & "\Desktop\"
newWorkbook.SaveAs desktopPath & newSheetName & ".xlsx"
newWorkbook.Close
MsgBox "已生成新表格: " & newSheetName & ".xlsx"
Else
MsgBox "未找到名为 " & sheetName & " 的工作表"
End If
End Sub
```
使用方法:
1. 打开你要操作的Excel文件。
2. 按下 `Alt + F11` 组合键,打开VBA编辑器。
3. 在左侧的项目窗口中,双击要操作的Excel文件,打开对应的代码编辑窗口。
4. 复制上面的代码,粘贴到代码编辑窗口中。
5. 修改 `sheetName` 变量的值为你要查找的sheet名。
6. 在Excel文件中打开要操作的sheet,并将你想要作为新表格名称的内容输入到该sheet的 B3 单元格中。
7. 在代码编辑窗口中,点击运行按钮或按下 `F5` 键,执行代码。
8. 等待代码执行完成,此时会在桌面上生成新的Excel文件,并用你输入的名称重命名。
请注意,由于这段代码是针对特定的需求编写的,如果输入的sheet名称不正确或者B3单元格为空,程序可能会出现错误。因此,在使用前请仔细检查输入的信息是否正确。
阅读全文