如果语句检查VBA中ActiveX命令按钮的值

时间:2015-06-11 21:40:24

标签: excel vba excel-vba

我正在尝试运行if语句,在继续之前检查工作表上几个命令按钮之一的值。

以下是我正在做的事情:

If Shift_Days.Value = True Then
    Database.Cells(iRow, 1).Value = "Day Shift"
End If

Shift_Days是按钮的名称。当我尝试运行它时,我收到一个Object required错误。我试过这个代码的几个变种,但没有运气。任何想法???

2 个答案:

答案 0 :(得分:0)

看看马特的评论。我认为你使用的是错误的财产。您想要使用标题并对字符串进行检查。

var Test = {
  value: '', // A value
  init: function(options) {
    // Set value
    Test.value = options.value;
  }
};

答案 1 :(得分:0)

听起来您正在尝试使用Excel工作表中的ActiveX命令按钮,或者只是一个常规的表单控件按钮。我正在阅读这个问题的方式,听起来像伪代码听起来应该是这样的:

'if "Shift_Days" button is pressed (aka button.value = true) then
'    do stuff
'end if

使用ActiveX控件,您需要引用它所在的电子表格。您的代码可能看起来像这样:

If Sheet1.Shift_Days.Value = True Then
    Sheet1.Database.Cells(iRow, 1).Value = "Day Shift"
End If

Sheet1是Excel表格的默认名称。如果您在宏的项目视图中更改了工作表的名称,则必须使用新名称。

或者,您可能只能使用Click命令来运行代码。别忘了将按钮链接到宏。

Private Sub Shift_Days_Click()
    Sheet1.Database.Cells(iRow, 1).Value = "Day Shift"
End Sub

希望这会有所帮助。如果这不起作用,请告诉我。