作者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
推 Semisphere:佛心 05/03 08:52
推 qsss:好人! 05/03 09:04
推 MAGICXX:大感謝@@ 05/03 09:05