作者sueadolph (人..只剩下不信任)
看板Visual_Basic
标题Re: [VBA ] GIS内的VBA...
时间Mon May 2 19:07:58 2011
※ 引述《MAGICXX (逢甲阿法)》之铭言:
: 版上有没有人懂GIS的COMBOBOX的.....可以教学一下吗QQ?
部份恕删
我不是懂gis这软体提供的vba的人,也没有gis可以帮你测程式
只不过摸过vba (office、solidworks二种vba)
而且本篇主要的错误都是vb程式,也跟vba没关系
: Private Sub ComboBox1_click()
: Select Case ComboBox1.ListIndex
: Case 0
: ComboBox2.Clear
: ComboBox2.AddItem "0公分"
: ComboBox2.Value = 99
^^^^^^^^^^^^^^^^^^^^^ 还是那句话,这串我真的不懂你要做的是什麽?
看之前的人写的是ItemData(combo1.NewIndex),那是重新指定Index
你可能因为vba不能使用itemdata因此把他改成value
value是combobox目前最上头那栏显示的值
你只是把combo上显示的值改为99
这行程式,造成你的程式执行後,会显示出 99 97 这种数值
而不是你想让人选择的 10公分、20公分
麻烦请您先弄清楚 index 跟item的差别
a = combobox1.value
combobox1.value =a
这二个是要作什麽用的也分清楚一下
不然把程式丢上来 我想也没人知道你要做什麽
如果真的不知道,执行程式时,请按f8去逐步执行
: ComboBox2.AddItem "10公分"
: ComboBox2.Value = 97
: ComboBox2.AddItem "20公分"
: ComboBox2.Value = 99
: Case 1
: ..... 内容恕删
: End Select
: Select Case ComboBox1.ListIndex
: Case 1
: ComboBox3.Clear
: ComboBox3.AddItem "BB"
: ComboBox3.Value = 70
: ComboBox3.AddItem "AA"
: ComboBox3.Value = 66
: Case 2
: ComboBox3.Clear
: ComboBox3.AddItem "DD"
: ComboBox3.Value = 74
: End Select
: End Sub
: Private Sub ComboBox2_CLICK()
: Label1.Caption = "S值为" & Str(ComboBox2.Value) / 100
str後,又去除100.......
: End Sub
: Private Sub ComboBox3_click()
: Label2.Caption = "A值为" & _
: (ComboBox3.Value / 100)
: End Sub
: Private Sub UserForm_Initialize()
这边我解释一下你的程式作了什麽事
: ComboBox1.AddItem "AA"
combobox1 加入了一个AA的选项
: ComboBox1.Value = 99
最上面那栏 显示了99 (※不会被加入选项)
: ComboBox1.AddItem "BB"
加了BB
: ComboBox1.Value = 71
最上面那栏从 99变成71 (※不被加入选项中)
: ComboBox1.AddItem "CC"
选项加入了 CC
: ComboBox1.Value = 65
从71 变成了65 (一样不被加入选项中)
: ComboBox1.Style = fmStyleDropDownList
把Combobox的显示方式 改为只可从List中选择
在此显示方式中,最上面那栏只能选择 list底下的,不可自行输入
所以你那个错误的语法ComboBox1.Value
在这之前不会执行错误
而且因为这一段 原本显示的65 因为不在选项中,所以从65变成 空白
因此你的程式,你会以为这段都没有问题
: End Sub
: 像我上面的COMBOBOX1虽然都有了
: 可是我只要一选 底下就会直接跑出VALUE来而不是跑出XX公分这样
因为你所有的combobox1.Click 最後都是ComboBox?.Value
所以你点完之後,看到的都是 值(value)
: 接着当我点COMBOBOX2的时候 又出现错误...囧
如果你是照着点上头那段错误的程式
点选了combobox1的AA
这时候的combobox2 应该会显示为
99 (最上面显示的
10公分 (下拉式清单中出现的
20公分
接着如果点选 10公分
Label1.Caption = "S值为" & Str(ComboBox2.Value) / 100
^^^^^^^^^^^^^^^^^^^^^^^^^^
会变成 Str(10公分) /100 > "10公分" /100
vb算得出来?????
: 有解吗QQ
: 有没有那种 可以把VB6的程式码转变成VBA的程式码的工具阿 囧
其实整篇会有执行错误的只有
Label1.Caption = "S值为" & Str(ComboBox2.Value) / 100
程式码错误是vb告诉你这段有问题
但逻辑错误 才是写程式的人最害怕的问题(前面那一大段)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.126.96.215
1F:推 Semisphere:佛心 05/03 08:52
2F:推 qsss:好人! 05/03 09:04
3F:推 MAGICXX:大感谢@@ 05/03 09:05