利用while循环在Excel电子表格中创建组合框

时间:2019-09-15 14:36:30

标签: excel vba activex

我需要将组合框放置在相对于此工作表上的单元格的特定位置。我试图利用while循环来更改变量值,并利用该变量来动态更改单元格。但是,我的代码似乎不起作用。该循环将运行一次,但在连续循环中会给我一个“对象不支持此属性或方法”错误。

Dim t As Integer

Dim wotype as object

t = 1

Do While t < 43

    wotype = ActiveSheet.Shapes.AddFormControl(xlDropDown, Left:=Cells(4, t).Left, Top:=Cells(3, t).Top, Width:=25.29, Height:=Rows(3).RowHeight)

    t = t + 3

Loop

1 个答案:

答案 0 :(得分:0)

将对象分配给变量时,需要使用Set关键字...

set wotype = ActiveSheet.Shapes.AddFormControl(xlDropDown, Left:=Cells(4, t).Left, Top:=Cells(3, t).Top, Width:=25.29, Height:=Rows(3).RowHeight)

尽管在这种情况下,由于您随后没有引用变量,因此可以按如下方式重写代码...

Dim t As Integer

t = 1

Do While t < 43

    ActiveSheet.Shapes.AddFormControl xlDropDown, Left:=Cells(4, t).Left, Top:=Cells(3, t).Top, Width:=25.29, Height:=Rows(3).RowHeight

    t = t + 3

Loop