【问题标题】:VBA Excel error with Button objects .OnActionButton对象的VBA Excel错误.OnAction
【发布时间】:2021-08-10 19:28:59
【问题描述】:

我的工作是生成大量报告。使用模块化方法,我正在尝试设置一个 Excel 工作簿,该工作簿根据从 Sheet("MainMenu") 中选择的报告动态创建工作表

无论如何,在动态表中我有以下内容

Public Sub OFFD_Report_Parse()
   Init 'just declares workbook and worksheet globals

   If shtTCL.Visible = False Then shtTCL.Visible = True
   shtTCL.Activate
   shtMenu.Visible = False
        
   Dim rngBtn1, rngBtn2, rngBtn3, rngBtn4 As Range
   Dim btn1, btn2, btn3, btn4 As Button

   Set rngBtn1 = shtTCL.Range("B10")
   Set btn1 = shtTCL.Buttons.Add(rngBtn1.Left, rngBtn1.Top, rngBtn1.Width, rngBtn1.Height)
   With btn1
    .OnAction = "TCL1"
    .Caption = "Copy 1"
   End With

运行时出现运行时错误“1004”无法设置按钮类的 OnAction 属性

它正在调用的子:

Sub TCL1()
     Clipboard ("SELECT ORDER WITH FLAG.DELETE = " & Chr(34) & "Y" & Chr(34) & Chr(13))
     CopyMsg 
End Sub

在同一个模块中。我在另一个 excel 文件中使用了这种精确的代码方法,没有任何问题,这真的让我很难过。

提前谢谢你!!!!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您需要做两件事来解决您的问题。

    1. 代码必须在标准模块中,而不是在后面
    2. 动作不能有数字后缀

    我还注意到您正在尝试使一堆变量变暗,而不是使用数组或集合。每行只调暗一个变量。每个变量都需要As 语句。那些被省略的默认声明为变体。

    如果您使用集合,您可以动态生成数组,而无需预先知道它有多少元素。

    在我显式调用集合(0) 的索引处,您可以改为使用循环和循环计数器。

    示例:

    Option Explicit
    
    Public Sub OFFDReportParse()
        Init 'just declares workbook and worksheet globals
        
        If shtTCL.Visible = False Then shtTCL.Visible = True
        shtTCL.Activate
        shtMenu.Visible = False
             
        Dim buttonRanges As Collection
        Dim newButtons As Collection
        
        buttonRanges.Add shtTCL.Range("B10")
        newButtons.Add shtTCL.Buttons.Add(buttonRanges(0).Left, buttonRanges(0).Top, buttonRanges(0).Width, buttonRanges(0).Height)
        With newButtons(0)
            .OnAction = "TCLaction"
            .Caption = "Copy 1"
        End With
    End Sub
    
    Public Sub TCLaction()
         Clipboard ("SELECT ORDER WITH FLAG.DELETE = " & Chr(34) & "Y" & Chr(34) & Chr(13))
         CopyMsg
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多