krampaul82 发表于 2007-8-17 15:06:02

下拉列表框

我是vba新手,知道得足够愚蠢。所以,请善待我。我正在尝试创建一个vba脚本,该脚本将在当前ACAD2008图形中插入一个块 某个模型有不同的零件号/扩展名,所以我想我应该使用一个组合框/案例语句来允许用户选择他需要的项目。它可以部分工作,但问题是,即使选择了另一项,它也总是只抓取列表中的第一项。这是代码,(附dvb)如有任何帮助,将不胜感激

**** Hidden Message *****

Keith™ 发表于 2007-8-17 15:17:50

正在查看

Keith™ 发表于 2007-8-17 15:22:57

好的,有几个问题……您试图读取的是按钮的文本,而不是组合框,即
Select Case cmd_sensor_t7770a.Text
   Case t7770a1006    'Calls sub from Module_sensor
          Sensor_t7770a1006_get
   Case t7770a1022    'Calls sub from Module_sensor
         Sensor_t7770a1022_get
   Case "t7770a2004"   'Calls sub from Module_sensor
         Sensor_t7770a2004_get
   Case t7770a2012    'Calls sub from Module_sensor
         Sensor_t7770a2012_get
   Case t7770a3002   'Calls sub from Module_sensor
         Sensor_t7770a3002_get
   End Select

您应该阅读相关组合框的内容,因此:
Select Case ComboBox_t7770a.Text
   Case t7770a1006    'Calls sub from Module_sensor
          Sensor_t7770a1006_get
   Case t7770a1022    'Calls sub from Module_sensor
         Sensor_t7770a1022_get
   Case "t7770a2004"   'Calls sub from Module_sensor
         Sensor_t7770a2004_get
   Case t7770a2012    'Calls sub from Module_sensor
         Sensor_t7770a2012_get
   Case t7770a3002   'Calls sub from Module_sensor
         Sensor_t7770a3002_get
   End Select
此外,您还应该将值作为文本字符串进行比较,在编写代码时,代码会将案例与变量进行比较。i、 e.文本比较必须用引号括起来,如下所示:
Select Case ComboBox_t7770a.Text
   Case "t7770a1006"    'Calls sub from Module_sensor
          Sensor_t7770a1006_get
   Case "t7770a1022"    'Calls sub from Module_sensor
         Sensor_t7770a1022_get
   Case "t7770a2004"   'Calls sub from Module_sensor
         Sensor_t7770a2004_get
   Case "t7770a2012"    'Calls sub from Module_sensor
         Sensor_t7770a2012_get
   Case "t7770a3002"   'Calls sub from Module_sensor
         Sensor_t7770a3002_get
   End Select
你有很多事情要纠正,但一旦你做到了,它就会按你的意愿工作。

Keith™ 发表于 2007-8-17 15:26:05

我马上就能看到几件事 您只需更改块名就可以一遍又一遍地重复(重新键入)相同的代码,因此我们可以将其压缩为1个函数,并将块名作为参数。
页: [1]
查看完整版本: 下拉列表框