看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《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