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

下拉列表框

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

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

好的,有几个问题......
您正在尝试读取按钮的文本,而不是组合框,即
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

此外,您还应该将值作为文本字符串进行比较,因为您已经编写了代码将大小写与变量进行比较。即您的文本比较必须在引号中如下所示:
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:22:57

我马上看到了一些东西。你只是一遍又一遍地重复(重新键入)相同的代码,只是改变了块名,所以也许我们可以把它压缩成一个函数,把块名作为一个参数。
页: [1]
查看完整版本: 下拉列表框