Excel VBA在生成副本的工作表中插入本工作簿中的VBA模块代码

即在工作簿中添加一个工作表,然后移出并存为新的工作簿,在移出前将本工作簿的一个模块的代码拷贝至新的工作簿。下面是关键代码:

        '======================================================================
        '各班名单保存为单个xls文件
        ActiveSheet.Move
        ChDir myPath
        '忽略对话框,覆盖保存
        Application.DisplayAlerts = False
        
        '班级名称增加“考生号处理”vba模块
        Dim iCodeLines As Integer
        Dim sCode As String
        iCodeLines = ThisWorkbook.VBProject.VBComponents("各班考号处理").CodeModule.CountOfLines '取得模块中代码行数
        sCode = ThisWorkbook.VBProject.VBComponents("各班考号处理").CodeModule.Lines(1, iCodeLines) '取得第1至iCodeLines行代码
        
        ActiveWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name = "各班考号处理" '新文件中添加“各班考号处理”模块
        ActiveWorkbook.VBProject.VBComponents("各班考号处理").CodeModule.AddFromString sCode '把thisworkbook的“各班考号处理”模块代码添加到activeworkbook的模块中
        ActiveWorkbook.SaveAs Filename:=myPath & "\2017级" & dickey & classTeacher & ".xls", FileFormat:=xlExcel8 '文件另存为2003版(xlExcel8)xls文件

        ActiveWindow.Close

即将下图中的“各班考号处理”模块拷贝至新工作簿

 

原文件下载

posted @ 2017-08-23 22:06  ukeedy  阅读(1527)  评论(0编辑  收藏  举报