怎么把上面这个宏放到工作表里,实现一点击就能运行
时间: 2024-03-09 20:50:40 浏览: 26
您可以按照以下步骤,将宏添加到工作表中,以实现一键运行:
1. 打开需要添加宏的 Excel 工作簿;
2. 按下 `Alt + F11` 进入 VBA 编辑器;
3. 在左侧的 “项目资源管理器” 窗口中,双击需要添加宏的工作表(比如 Sheet1),以展开其所有模块和代码;
4. 在代码窗口中,复制您的宏代码;
5. 在代码窗口中,在 `Sub` 和 `End Sub` 之间插入以下代码:
```
Public Sub RunMyMacro()
' 将 "YourMacroName" 替换为您宏的名称
Call YourMacroName
End Sub
```
这里我们新建了一个名为 `RunMyMacro` 的公共子程序,用于调用您之前编写的宏。
6. 保存代码,并关闭 VBA 编辑器窗口,回到 Excel 主界面;
7. 在工作表中插入一个按钮或形状,单击并按住 `Ctrl` 键,同时单击工作表上的宏按钮,即可打开 “分配宏” 对话框;
8. 在 “分配宏” 对话框中,选择刚才新建的 `RunMyMacro`,并点击 “确定” 按钮;
9. 完成后,单击按钮或形状,即可运行您的宏。
需要注意的是,在添加宏按钮之前,请确保您的宏代码已经正确编写并测试通过。如果您的宏代码存在语法错误或逻辑错误,可能会导致按钮无法正常工作。因此,建议您先在 VBA 编辑器中调试代码,确保代码没有问题,再将它添加到工作表中。
相关问题
写一个EXCEL宏,查找工作表中sheet名字叫中兴通讯成品运输提货单(空运)的sheet,复制并放到新的工作表文件里,并将新工作表所有公式内容转换成非公式,新的工作表文件用 中兴通讯成品运输提货单(空运) 和B3到F3单元格内容 命名,并将新的工作表放到桌面
好的,以下是你需要的 VBA 代码:
```VBA
Sub CopySheet()
Dim ws As Worksheet '定义工作表变量
Dim newWs As Worksheet '定义新工作表变量
'遍历所有工作表
For Each ws In ActiveWorkbook.Worksheets
'判断工作表名称是否为指定名称
If ws.Name = "中兴通讯成品运输提货单(空运)" Then
'复制工作表到新工作簿
ws.Copy after:=Workbooks.Add.Sheets(1)
'获取新工作表对象
Set newWs = ActiveSheet
'重命名新工作表
newWs.Name = "中兴通讯成品运输提货单(空运) 和B3到F3单元格内容"
'将公式转换成数值
newWs.Cells.Copy
newWs.Cells.PasteSpecial xlPasteValues
'保存新工作簿到桌面
ActiveWorkbook.SaveAs Filename:="C:\Users\" & Environ("USERNAME") & "\Desktop\" & newWs.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook
'退出循环
Exit For
End If
Next ws
End Sub
```
请将此代码复制到 Excel 宏编辑器中,并保存文件为宏启用的 Excel 文件。运行此宏后,工作簿中名为 "中兴通讯成品运输提货单(空运)" 的工作表将被复制到新的工作簿文件中,并且将所有公式转换为数值。新工作簿文件将以 "中兴通讯成品运输提货单(空运) 和B3到F3单元格内容" 为名称保存到桌面。
写一个EXCEL宏,查找工作表中sheet名字叫中兴通讯成品运输提货单(空运)的sheet,复制生成新的工作表,并将所有公式内容转换成非公式,用B3单元格内容重命名,新的表格文件用 中兴通讯成品运输提货单(空运) 和B3单元格内容 命名,新的工作表放到桌面
以下是实现上述功能的EXCEL宏代码:
```
Sub CopySheetAndConvertFormula()
Dim desktopPath As String
desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") '桌面路径
Dim sheetName As String
sheetName = "中兴通讯成品运输提货单(空运)"
Dim newSheetName As String
newSheetName = sheetName & " - " & Range("B3").Value '使用B3单元格内容重命名新工作表
Dim newWorkbookName As String
newWorkbookName = desktopPath & "\" & sheetName & " - " & Range("B3").Value & ".xlsx" '新工作表格文件名
Dim found As Boolean
found = False
For Each sht In ActiveWorkbook.Sheets
If sht.Name = sheetName Then '查找要复制的工作表
found = True
sht.Copy After:=Worksheets(Worksheets.Count) '复制工作表
ActiveSheet.Name = newSheetName '重命名新工作表
Exit For
End If
Next sht
If found = False Then '未找到要复制的工作表
MsgBox "找不到名称为" & sheetName & "的工作表"
Exit Sub
End If
For Each cell In ActiveSheet.UsedRange '遍历新工作表中的单元格
If cell.HasFormula Then '如果单元格中有公式
cell.Value = cell.Value '将公式转换为值
End If
Next cell
ActiveWorkbook.SaveAs newWorkbookName '保存新工作表格文件
MsgBox "新工作表格文件已保存为" & newWorkbookName
End Sub
```
将以上代码复制到EXCEL的宏编辑器中,保存后即可在EXCEL中运行该宏。请确保在运行该宏前已经保存了工作表格文件,且B3单元格中有合适的内容。新的工作表格文件将保存在桌面。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)