我的excel表格中有一些清单框(比如AF,复选框的标题),基于启用检查清单,我必须生成十六进制值...以下代码是否会这样做。
Private Sub CommandButton1_Click()
Dim SegArray(15) As Integer
For i = 0 To 13
If CheckBox(i).Value = True Then
SegArray(i) = 1
Else
SegArray(i) = 0
End If
Next i
hex_value = Hex(SegArray())
MsgBox "0x" & hex_value
End Sub
我收到了一个错误:
编译错误:子或函数未定义
答案 0 :(得分:1)
您的功能存在许多问题
CheckBox
不是数组。它们不能被引用为ChecklBox(i)
CheckBox1
而不是CheckBox0
Hex
函数转换十进制数,而不是数组或二进制数继承你的职能以重新解决这些问题
Private Sub CommandButton1_Click()
Const num_of_checkboxes = 14
Dim SegArray() As Long
Dim i As Long
Dim dec_value As Long
Dim hex_value As String
ReDim SegArray(1 To num_of_checkboxes)
dec_value = 0
For i = 1 To num_of_checkboxes
If Me.OLEObjects("CheckBox" & i).Object.Value Then
dec_value = dec_value + 2 ^ (i - 1)
End If
Next i
hex_value = Hex(dec_value)
MsgBox "0x" & hex_value
End Sub
假设CheckBox1是最不重要的位