Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 无法设置按钮类错误的onAction属性_Excel_Vba - Fatal编程技术网

Excel 无法设置按钮类错误的onAction属性

Excel 无法设置按钮类错误的onAction属性,excel,vba,Excel,Vba,我正在尝试为按钮分配一个功能。这有时似乎有效,有时我会出现错误“无法设置button类的onAction属性” 我在这一行中得到错误“Selection.OnAction=“'SomeFile.xls”!打印工作簿。打印工作簿“”。不确定为什么这只会在某些时候发生,而在其他时候起作用。您的代码假设在调用ActiveSheet.Buttons.Add之后选择了按钮,并且选择成功。 您应该使用ActiveSheet.Buttons.Add的返回值,如下所示: Windows("MyFile.XLS"

我正在尝试为按钮分配一个功能。这有时似乎有效,有时我会出现错误“无法设置button类的onAction属性”


我在这一行中得到错误
“Selection.OnAction=“'SomeFile.xls”!打印工作簿。打印工作簿“”
。不确定为什么这只会在某些时候发生,而在其他时候起作用。

您的代码假设在调用
ActiveSheet.Buttons.Add
之后选择了按钮,并且选择成功。 您应该使用
ActiveSheet.Buttons.Add的返回值,如下所示:

Windows("MyFile.XLS").Activate
    Sheets("Sheet1").Select
        Range("G12").Select
        Set Button = ActiveSheet.Buttons.Add(306, 36.6, 94.8, 21)
        Button.OnAction = "'SomeFile.xls'!PrintWorkbook.PrintWorkbook"
        Button.Characters.Text = "Print Workbook"
        With Button.Characters(Start:=1, Length:=14).Font
            .Name = "Times New Roman"
            .FontStyle = "Bold"
            .Size = 10
        End With

有没有可能您已经有一个按钮绑定到同一个“onAction”处理程序?没有,这是我在此文件中创建的第一个按钮。我创建了另一个后,这与上述相同的代码,但工作良好。该错误与printworkbook函数有关。是否启用了文件宏?尝试另存为xlsm。请尝试将宏放在同一文件中。我看到宏位于SomeFile.xls,活动文件是MyFile.xls还有其他建议吗?我仍然无法修复这个错误
Windows("MyFile.XLS").Activate
    Sheets("Sheet1").Select
        Range("G12").Select
        Set Button = ActiveSheet.Buttons.Add(306, 36.6, 94.8, 21)
        Button.OnAction = "'SomeFile.xls'!PrintWorkbook.PrintWorkbook"
        Button.Characters.Text = "Print Workbook"
        With Button.Characters(Start:=1, Length:=14).Font
            .Name = "Times New Roman"
            .FontStyle = "Bold"
            .Size = 10
        End With