如何在Excel中制作重置按钮

时间:2014-12-28 23:23:46

标签: excel vba excel-vba combobox

我正在尝试制作一个重置按钮,它将替换用户在多个组合框中使用值TOTAL选择的任何值。使用记录宏我选择了组合框,但我无法弄清楚如何插入值。以下代码给出了424错误。

ActiveSheet.Shapes.Range(Array("ComboBox2")).Select.Value = TOTAL

我添加到宏的部分是.Value=TOTAL

任何人都知道我应该怎么做?请注意,我不想清除组合框;我想给他们一个特定的价值。

1 个答案:

答案 0 :(得分:0)

  • 如果组合框表单控件,请使用OLEFormat.Object.ListIndex选择项目。
  • 如果组合框是 ActiveX控件,请使用OLEFormat.Object.Object.ListIndex (请注意,在这种情况下,列表中的第一项具有索引0)。

然后遍历要重置的所有组合框,并将ListIndex设置为项"TOTAL"的索引。在此示例中,项"TOTAL"位于列表的第一位,因此对于表单组合框(如果使用)ListIndex = 1和ActiveX组合框ListIndex = 0。 HTH

(您可能正在使用ActiveX组合框,但在示例中,仅使用旧的表单组合框)。

Sub ResetToTotal2()
    Dim combos
    Dim combo
    Dim comboObject

    combos = Array("ComboBox1", "ComboBox2", "ComboBox3")

    For Each combo In combos
        Set comboObject = ActiveSheet.Shapes(combo).OLEFormat.Object
        If TypeName(comboObject) = "DropDown" Then
            comboObject.ListIndex = 1
        Else
            comboObject.Object.ListIndex = 0
        End If
    Next combo
End Sub