一、以下代码是通过Auto_Open事件,自动向ThisWorkbook里添加VBA代码:

Private Sub Auto_Open()Call AddCodeToThisWorkbookMsgBox ("This is Auto_Open Sub !")
End Sub
Private Sub AddCodeToThisWorkbook() With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.InsertLines 1, "Private Sub Workbook_open()".InsertLines 2, "   MsgBox (""This is Workbook_Open Sub !"")".InsertLines 3, "End Sub"End With
End Sub

二、以下代码是通过VBA修改注册表:

Sub ChangeSettings()Dim FsoDim RegKey_User_AcsVm As StringDim RegKey_User_Level As StringDim RegKey_Mach_AcsVm As StringDim RegKey_Mach_Level As StringDim RegVal_User_AcsVm As VariantDim RegVal_User_Level As VariantDim RegVal_Mach_AcsVm As VariantDim RegVal_Mach_Level As VariantDim ExcelVersion As StringOn Error Resume NextExcelVersion = Application.VersionSet Fso = CreateObject("Scripting.FileSystemObject")RegKey_User_AcsVm = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\AccessVBOM"RegKey_User_Level = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\Level"RegKey_Mach_AcsVm = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\AccessVBOM"RegKey_Mach_Level = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\Level"Value_User_AcsVm = 1Value_User_Level = 1Value_Mach_AcsVm = 1Value_Mach_Level = 1Call ModReg(RegKey_User_AcsVm, Value_User_AcsVm, "REG_DWORD")Call ModReg(RegKey_User_Level, Value_User_Level, "REG_DWORD")Call ModReg(RegKey_Mach_AcsVm, Value_Mach_AcsVm, "REG_DWORD")Call ModReg(RegKey_Mach_Level, Value_Mach_Level, "REG_DWORD")
End Sub
Sub ModReg(RegKey As String, Value As Variant, ValueType As String)Dim oWshellSet oWshell = CreateObject("WScript.Shell")If ValueType = "" ThenoWshell.RegWrite RegKey, ValueElseoWshell.RegWrite RegKey, Value, ValueTypeEnd IfSet oWshell = Nothing
End Sub

三、以下函数用来判断一个工作簿中是否存在指定的Sheet名:

Function SheetIsExist(WBookName As String,WSheetName As String) As Boolean   Dim Tmp_WSheet As Worksheet   For Each Tmp_WSheet In Workbooks(WBookName).Worksheets   If UCase(Tmp_WSheet.Name) = UCase(WSheetName) ThenSheetIsExist = TrueExit FunctionEnd If                    Next Tmp_WSheet   SheetIsExist = False
End Function

以下为调用SheetIsExist函数的示例:

Sub Example01()'开始计时begin = Timer'禁止刷屏Application.ScreenUpdating = FalseApplication.DisplayAlerts = False'记录当前文件名Dim CurFileName As StringCurFileName = Sheets("Sheet1").[A1].Parent.Parent.NameIf SheetIsExist(CurFileName, "Sheet2") ThenWorksheets("Sheet2").DeleteEnd IfIf SheetIsExist(CurFileName, "Sheet3") ThenWorksheets("Sheet3").DeleteEnd IfApplication.ScreenUpdating = TrueApplication.DisplayAlerts = Trueover = TimerMsgBox ("已运行完成!共运行" & over - begin & "s")
End Sub

转载于:https://blog.51cto.com/mitree/1329270

VBA学习笔记(一):自动添加代码VBA修改注册表相关推荐

  1. 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮

    陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...

  2. VBA学习笔记(9)--生成点拨(1)

    VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...

  3. VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿

    VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿 1.对每行数据按照类别所在列进行循环,判断某类别的工作簿是否存在: 2.如果不存在,则新建工作簿并将该行数据复制粘贴: 3.如果存在则打开 ...

  4. VBA学习笔记2:将工作簿的表格拆分为工作簿

    VBA学习笔记2:将工作簿的表格拆分为工作簿 1.判断原有工作簿的sheet是否需要拆分: 2.如需拆分则创建新表: 3.将原sheet复制到新建的工作簿中. 效果如下: 代码执行前,有1个工作簿,需 ...

  5. VBA学习笔记8:单元格的合并与拆分

    VBA学习笔记8:单元格的合并与拆分 如下图,需要实现1图到2图(单元格合并),或2图到1图(单元格拆分). 1图: 2图: 合并单元格代码如下: Sub 合并单元格()Dim k%, rng As ...

  6. VBA学习笔记3:合并同一工作簿下的多个表格

    VBA学习笔记3:合并同一工作簿下的多个表格 1.建立一个新的汇总表: 2.将其他sheet数据复制到汇总表中. 效果如下: 需要将3个sheet的表的数据汇总起来 汇总后的数据: 代码如下: Sub ...

  7. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

  8. Excel VBA 学习笔记13:单元格的格式

    Excel VBA 学习笔记13:单元格的格式 NumberFormat 属性 (Excel) vba excel 单元格格式设置 Excel VBA 单元格格式 python解决SNIMissing ...

  9. VBA 学习笔记 - 网络请求

    VBA 学习笔记 - 网络请求 Microsoft.XMLHTTP MSXML2.serverXMLHTTP.6.0 WinHttp.WinHttpRequest.5.1 参考资料 Microsoft ...

最新文章

  1. Blender制作3D模型导出到UE5完整学习教程
  2. Beta冲刺 day1
  3. FJUT OJ 2466 T^T的叛乱计划(组合数学)
  4. j2ee 和 j2se_在J2SE应用中模拟CDI的会话和请求范围
  5. 影响大数据和分析的5大趋势
  6. 单行溢出隐藏没生效_至今没搞懂,为什么这个缸这么火?
  7. 经典排序算法(十九)--Flash Sort
  8. atitit.查看预编译sql问号 本质and原理and查看原生sql语句
  9. 毫米波雷达及其应用精炼介绍
  10. 使用帧相似度匹配编写无缝循环视频截取工具
  11. 在数学的海洋中飘荡(转自Dahua的Blog)
  12. MAC删除多余的声音驱动文件
  13. 物流小程序设计开发的功能明细与方案
  14. 华为2018实习面试+状态总结
  15. python+untitest+request实现接口自动化测试
  16. java工程加包_向java工程添加jar包
  17. 淘客网站中系统信息获取
  18. 2021年河南高考成绩排名查询,2021年河南高考成绩排名查询系统,河南高考位次排名查询...
  19. 【新书推荐】【2018.05】电磁兼容性的计算方法
  20. 高新技术企业认定的指标要求

热门文章

  1. 矩阵化为行最简形矩阵计算器_[内附完整源码和文档] 基于C++的小型特殊计算器...
  2. IoU 判断矩形区域重叠
  3. 监控:系统构架重要的一环
  4. Django中的日期和时间格式 DateTimeField
  5. 深入分析Java Web技术内幕pdf
  6. mysqldump: command not found
  7. linux 命令02
  8. String Split 和 Join
  9. CSS画基本图形——圆
  10. [再寄小读者之数学篇](2014-06-22 求导数 [中国科学技术大学2014年高等数学B考研试题])...