excel - 利用 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
解决方案
将对象分配给变量时,需要使用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
推荐阅读
- python - 无法在 docker 映像中安装任何 jupyterlab 扩展
- javascript - 为什么我无法通过全局 url 访问在谷歌云上部署的 kubernetes 服务?
- reactjs - react-admin中如何处理按钮类型ListItem中的方法类型?
- visual-studio-code - 扩展是否有可能在 VS Code 实例之间共享数据?
- python - 是否可以使用一些基类参数初始化子类,而无需在基类构造函数中显式地将它们作为参数传递?
- go - 禁用 json 绑定验证
- fluent-ui - Fluent-ui - 在 DetailsList 上拖放项目时负责滚动的扩展区域
- stdout - 从控制台应用程序重定向标准输出流 (CreateProcess)
- aws-lambda - 如何找到我的 lambda 所在的跟踪 ID?
- npm - AWS 在 codeBuild 中安装 github 私有包