首页 > 解决方案 > 利用 while 循环在 Excel 电子表格中创建组合框

问题描述

我需要将组合框放置在与此工作表上的单元格相关的特定位置。我试图利用 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

标签: excelvbaactivex

解决方案


将对象分配给变量时,需要使用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

推荐阅读