简体   繁体   中英

Delete VBA code from a sheet using VBA

I am wanting to delete the VBA code contained within a sheet through VBA. Currently, I have a code that copies a sheet across to a new workbook and deletes all images from it. However, these images are set to do things on Worksheet_Activate in the code, which then causes an error whenever I flick to that sheet with no images there.

I know I can get rid of modules etc using something along the lines of:

 With ActiveWorkbook.VBProject 
        For x = .VBComponents.Count To 1 Step -1 
            .VBComponents.Remove .VBComponents(x) 
        Next x 
        For x = .VBComponents.Count To 1 Step -1 
            .VBComponents(x).CodeModule.DeleteLines _ 
            1, .VBComponents(x).CodeModule.CountOfLines 
        Next x 
    End With

but that does not delete from the sheet (or the workbook for that matter. Would be interesting to know if that was possible too).

The code itself will need to be valid for Excel versions 2003 through to 2013 (so cannot use the save as xlsx workaround)

Thanks in advance.

Ben

Found out the issue. My code works fine, just the computer I was testing it on did not allow access to the VBA project object model (and was running it with an On Error Resume Next earlier on in the code)

Will have to write an exception in to sort that out in such cases.

Thanks to @mehow @nixda @SiddharthRout and @DaveU for the help

Ben

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM