一、以下代码是通过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_USERSoftwareMicrosoftOffice" & ExcelVersion & "ExcelSecurityAccessVBOM"RegKey_User_Level = "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & ExcelVersion & "ExcelSecurityLevel"RegKey_Mach_AcsVm = "HKEY_LOCAL_MACHINESoftwareMicrosoftOffice" & ExcelVersion & "ExcelSecurityAccessVBOM"RegKey_Mach_Level = "HKEY_LOCAL_MACHINESoftwareMicrosoftOffice" & ExcelVersion & "ExcelSecurityLevel"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