先来解释下什么是Excel vba宏
⭐Excel VBA宏(Visual Basic for Applications)是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏,以便通过执行一系列指令来自动完成特定任务。
使用Excel VBA宏,你可以创建和编辑工作表、处理数据、执行计算、生成报表、自定义用户界面等。通过编写VBA代码,你可以利用Excel的各种功能和对象模型,以及相关的函数和方法,实现更高级的操作和自定义功能。
VBA宏可以通过录制宏的方式生成初始代码,也可以手动编写代码来实现更复杂的功能。你可以在Excel中的"开发者"选项卡中访问VBA编辑器,其中可以编写、修改和运行VBA宏。
借助Excel VBA宏的强大功能,用户可以提高工作效率、简化重复性任务,并根据自己的需求进行定制化操作。
🐇才知道原来excel也可以写代码,打开方式是:在开发工具中选择VB宏
那怎么用ChatGPT与Excel结合来编写VBA宏呢?
案例1
💕比如我的需求是:写一个基本的Excel vba宏,用于将表格中的第3行到第9行每一行数据转换为一个新的工作簿
VBA宏如下:
Sub SplitRowsToNewWorkbooks()Dim sourceSheet As WorksheetDim newWorkbook As WorkbookDim newRow As RangeDim rowIndex As Long' 设置源工作表Set sourceSheet = ThisWorkbook.ActiveSheet' 创建新工作簿Set newWorkbook = Workbooks.Add' 循环复制行数据到新工作簿For rowIndex = 3 To 9' 复制当前行数据sourceSheet.Rows(rowIndex).Copy' 在新工作簿中粘贴数据newWorkbook.Sheets(1).Cells(rowIndex - 2, 1).PasteSpecial Paste:=xlPasteAllNext rowIndex' 清除剪贴板内容Application.CutCopyMode = False' 保存新工作簿newWorkbook.SaveAs "路径\文件名.xlsx" ' 替换为你想要保存的路径和文件名' 关闭新工作簿newWorkbook.Close' 提示完成信息MsgBox "已将行数据分割为新的工作簿并保存。"
End Sub
请将代码中的"路径\文件名.xlsx"替换为你希望保存的路径和文件名。运行该宏后,会将第3行到第9行的每一行数据复制到一个新的工作簿,并将其保存在指定的路径下。完成后会弹出一个提示框,显示操作已完成。
操作如下:
1️⃣
2️⃣需要注意修改代码的行数列数表格数,确定没啥问题
3️⃣
4️⃣在这里需要注意“将代码中的"路径\文件名.xlsx"替换为你希望保存的路径和文件名”
5️⃣改完路径就会弹窗(要关闭这个弹窗才可以打开新的excel表格文件哦)
6️⃣执行完,打开刚刚设置的路径文件,程序执行pass~~
🐇虽然chatGPT没有理解我的命令是“每一行”生成新表格,但“回炉再造”一遍就好,重要的是学会ChatGPT与Excel结合来编写VBA宏
案例2
💕又比如我的需求是:编写一个Excel VBA宏,将工作薄,每个工作表中的图片,移动到A1单元格上
Dim ws As WorksheetDim shp As Shape ' 循环遍历所有工表For Each ws ThisWorkbook.Worksheets' 遍历当前工作表的所有形状(图片)For Each shp In ws.Shapes' 判断形状是否为图片类型Ifp.Type = msoPicture Then' 将图片移动到A1单元格位置shp.Top = ws.Range("A1").Topshp.Left = ws.Range("A1").LeftEnd IfNext shpNext ws' 提示完成信息MsgBox "已将所有图片移动到A1单元格位置。"
End Sub
运行该宏后,它会遍历工作薄中的每个工作表,并将每个作表中的图片移动到A1单元格的位置。在移动图片之后,会弹出一个提示框显示操作已完成。
请注意,宏只会处理工作表中的图片形状,对于其他类型的形状(如图表等),需要根据实际情况进行适的修改。
这个操作也类似上面的。
案例3
💕我的需求是:编写一个Excel VBA宏,删除当前Excel工作簿里边所有的图片
Sub DeleteAllPictures()Dim ws As WorksheetDim shp As Shape' 循环遍历所有工作表For Each ws In ThisWorkbook.Worksheets' 遍历当前工作表的所有形状(图片)For Each shp In ws.Shapes' 判断形状是否为图片类型If shp.Type = msoPicture Then' 删除图片shp.DeleteEnd IfNext shpNext ws' 提示完成信息MsgBox "已删除所有图片。"
End Sub
运行该宏后,它会遍历当前Excel工作簿中的每个工作表,并删除每个工作表中的所有图片。在删除图片之后,会弹出一个提示框显示操作已完成。
请注意,宏只会处理工作表中的图片形状,对于其他类型的形状(如图表等),需要根据实际情况进行适当修改。
🐇代码不需要理解,可以跑,实现作用就好啦~~~
🐇不过看懂代码对大家应该很简单