Sub kk()
Dim B(0 To 15) As Byte
For i = 0 To 15
B(i) = "0"
Next
If CheckBox1.Checked = True Then B(0) = "1"
If CheckBox2.Checked = True Then B(1) = "1" '新加進來的
If CheckBox3.Checked = True Then B(2) = "1"
If CheckBox4.Checked = True Then B(3) = "1"
If CheckBox5.Checked = True Then B(4) = "1"
If CheckBox6.Checked = True Then B(5) = "1"
If CheckBox7.Checked = True Then B(6) = "1"
If CheckBox8.Checked = True Then B(7) = "1"
If CheckBox9.Checked = True Then B(8) = "1"
If CheckBox10.Checked = True Then B(9) = "1"
If CheckBox11.Checked = True Then B(10) = "1"
If CheckBox12.Checked = True Then B(11) = "1"
If CheckBox13.Checked = True Then B(12) = "1"
If CheckBox14.Checked = True Then B(13) = "1"
If CheckBox15.Checked = True Then B(14) = "1"
If CheckBox16.Checked = True Then B(15) = "1"
TextBox1.Text = ""
A = 0
C = 0
D = 0
For i = 0 To 7
C = C + B(i)
Next
For i = 8 To 15
D = D + B(i)
Next
For i = 2 To 11
A = A + B(i)
請教大家,我想把A 這個變數變成16進制,如何做
uj5u.com熱心網友回復:
hex(A)就可以了uj5u.com熱心網友回復:
你最后那兒,為什么是“2到11”呢?只用這中間的10Bit ?dim n as long
n=1
for i = 2 to 11
A = A + n * B(i)
n = n+n
next
隨手打的代碼,不過應該是沒有問題的。
uj5u.com熱心網友回復:
msgbox hex(A)uj5u.com熱心網友回復:
我只要2 to 11 的值uj5u.com熱心網友回復:
既然要求A的十六進制,我猜B(i)應該是位值,A的計算方法有誤(先在是統計出現1的個數)吧。'按位值計算'
For i = 2 To 11
A = A + B(i) * (2 ^ i)
Next
'顯示十六進制'
MsgBox "&H" & Hex(A)
uj5u.com熱心網友回復:
我又要來吐槽控制元件陣列了.要是有1000個checkbox, 樓主的代碼肯定很妖艷.
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
其實你肯定沒注意到:
樓主的應用環境是VBA而不是VB6,在VBA環境下的視窗中,是沒法使用控制元件陣列的。
uj5u.com熱心網友回復:
樓主是搞VBA的啊?uj5u.com熱心網友回復:
這兩天正好用了下Excel,發現Excel的CheckBox沒有“Checked”屬性,標識“是否選擇”的屬性,跟VB6是一樣的,依然是 Value屬性。
估計其它的VBA環境也會是一樣的。

看來樓主用的可能不是VBA表單,而有可能是 VB.NET的…………

那么,這下就可以用控制元件陣列了。
uj5u.com熱心網友回復:
問題已經解決。VB.net轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/57440.html
標籤:VB基礎類
上一篇:VB6.0如何從攝像頭讀取二維碼
下一篇:VB液位流動的控制元件
