ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6247|回复: 3

[求助] 加载宏时,出现:excel 运行时错误 '429' ActiveX部件不能创建对象

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-9-10 16:30 | 显示全部楼层 |阅读模式
Option Explicit
Public g_nCommand As Integer
Public g_szReport As String
Public g_szUniqueReport As String
Public g_szHtml As String
Public g_nCol As Integer
Public g_nRow As Integer
Sub auto_open()
    Dim DefDlg As New CRepDlg
    g_nCommand = DefDlg.GetCommand()   
    g_szReport = DefDlg.GetRepName()
    g_szHtml = DefDlg.GetHtmlName()
    g_szUniqueReport = DefDlg.GetUniqueReport()
    If (g_nCommand = 0) Then '新建报表定义
        g_nCommand = 1
        If (Workbooks.Count = 0) Then
            Workbooks.Add
        End If
        If (ActiveWorkbook.Sheets.Count = 0) Then
            ActiveWorkbook.Sheets.Add
        End If
        ActiveWorkbook.SaveAs FileName:=g_szReport, FileFormat _
            :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
            False, CreateBackup:=False
    ElseIf (g_nCommand >= 1) Then
        Workbooks.Open g_szReport
    End If
    If (g_nCommand = 1) Then '更改报表定义
        ButtonAction.ShowDefine (True)
    ElseIf (g_nCommand = 2) Then
        ButtonAction.ShowResult
    ElseIf (g_nCommand = 3) Then    'publish
        ButtonAction.ShowResult
        ButtonAction.SaveAsHTML
    ElseIf (g_nCommand = 4) Then    'print
        ButtonAction.ShowResult
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    ElseIf (g_nCommand = 5) Then    'print and publish
        ButtonAction.ShowResult
        ButtonAction.SaveAsHTML
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
   
   
'保存自动生成报表
    If (g_nCommand >= 2) Then
        ActiveWorkbook.SaveAs FileName:=g_szUniqueReport, FileFormat _
            :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
            False, CreateBackup:=False
    End If
'修改菜单
    If (g_nCommand = 1 Or g_nCommand = 2) Then
        SysInit
    End If
'自动生成报表时,马上退出,不要显示
    If (g_nCommand > 2 And g_nCommand < 6) Then
        ActiveWorkbook.Close False
        Application.Quit
    End If
End Sub
Sub auto_close()
    Application.MenuBars(xlWorksheet).Reset
End Sub
Sub SysInit()
    Dim CmbMenu As Variant
    If (g_nCommand = 1) Then    '定义报表
        For Each CmbMenu In Application.MenuBars(xlWorksheet).Menus
            CmbMenu.Delete
        Next
        With Application.MenuBars(xlWorksheet).Menus
            .Add "文件"
            With .Item("文件").MenuItems
                .Add "退出"
                .Item("退出").OnAction = "ButtonAction.AppQuit"
            End With
            .Add "数据定义"
            With .Item("数据定义").MenuItems
                .Add "采集量定义"
                .Item("采集量定义").OnAction = "ButtonAction.DefineScadaDlg"
                .Add "整列设置"
                .Item("整列设置").OnAction = "ButtonAction.DefineStatColDlg"
                '.Add "统计量定义"
               ' .Item("统计量定义").OnAction = "ButtonAction.DefineStatDlg"
                '.Add "时间定义"
                '.Item("时间定义").OnAction = "ButtonAction.DefineTimeDlg"
                .Add ("删除数据定义")
                .Item("删除数据定义").OnAction = "ButtonAction.DeleteCellDefine"
            End With
            .Add "编辑"
            With .Item("编辑").MenuItems
                .Add "复制"
                .Item("复制").OnAction = "ButtonAction.Copy"
                .Add "粘贴"
                .Item("粘贴").OnAction = "ButtonAction.Paste"
                .Add "整列粘贴"
                .Item("整列粘贴").OnAction = "ButtonAction.PasteCol"
                .Add "刷新"
                .Item("刷新").OnAction = "ButtonAction.ShowDefine(True)"
                .Add "插入一空行"
                .Item("插入一空行").OnAction = "ButtonAction.InsertRow"
                .Add "插入一空列"
                .Item("插入一空列").OnAction = "ButtonAction.InsertCol"
                .Add "删除一行"
                .Item("删除一行").OnAction = "ButtonAction.DeleteRow"
                .Add "删除一列"
                .Item("删除一列").OnAction = "ButtonAction.DeleteCol"
          End With
            .Add "系统切换"
            With .Item("系统切换").MenuItems
                .Add "恢复Excel菜单"
                .Item("恢复Excel菜单").OnAction = "ButtonAction.ExcelMenu"
            End With
        End With
    ElseIf (g_nCommand = 2) Then    '生成报表
        For Each CmbMenu In Application.MenuBars(xlWorksheet).Menus
            CmbMenu.Delete
        Next
        With Application.MenuBars(xlWorksheet).Menus
            .Add "文件"
            With .Item("文件").MenuItems
                .Add "发布报表"
                .Item("发布报表").OnAction = "ButtonAction.SaveAsHTML"
                .Add "退出"
                .Item("退出").OnAction = "ButtonAction.AppQuit"
            End With
            .Add "系统切换"
            With .Item("系统切换").MenuItems
                .Add "恢复Excel菜单"
                .Item("恢复Excel菜单").OnAction = "ButtonAction.ExcelMenu"
            End With
        End With
    End If
End Sub


然后点调试,就在停在红色文字部分,求助大神帮忙啊!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-11 08:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-4-21 14:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看一看 CRepDlg设置是否对

TA的精华主题

TA的得分主题

发表于 2023-2-15 16:22 | 显示全部楼层
Private Sub del()
    Dim xlsShp As Shape
    Dim xlsChart As Chart
    Dim Sht As Worksheet
    Dim oChart As ChartObject
         Set Sht = Sheet2
               For Each oChart In Sht.ChartObjects
                    Debug.Print oChart.Name
                    oChart.Select
                    ActiveWindow.SelectedSheets.Delete
               Next oChart
         Set xlsShp = Sht.Shapes.AddChart
         Set xlsChart = xlsShp.Chart
         With xlsChart
                '.Location xlLocationAsNewSheet
                .SetSourceData Source:=Workbooks("中国东西南北城市.xls").Sheets("Tmp").Range("B2:I5")
                .Location xlLocationAsNewSheet
               
         End With
   
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 05:28 , Processed in 0.028195 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表