创建一个 VBA 程序,该程序将执行两个十六进制数的加法或减法
Create a VBA program that will perform an addition or subtraction of two Hexadecimal numbers
我正在尝试让加法和减法选项都起作用,并在每个标签框之间显示正确的符号。我 运行 犯了一个错误,VBA 突出显示了我的错误。框 A、B 和 C 的值需要分别为 10、11 和 12。当您单击一个框时,它应该用该值填充第一个空框。当两个框都已满并且您单击另一个字母时,不应更改它,而是在您单击清除之前值将被锁定。
当前代码:
Private Sub Addition_Click()
Me.Result = (Me.LblFirstNum + 0) + (Me.LblSecondNum + 0)
'lblresult = Val(LblFirstNum) + Val(LblSecondNum)
End Sub
Private Sub BtnA_Click()
With LblFirstNum
'to display text
.Caption = "10"
.TextAlign = fmTextAlignCenter
'wrap text
.WordWrap = True
.Font.Size = 18
End With
End Sub
Private Sub BtnB_Click()
With LblSecondNum
'to display text
.Caption = "11"
.TextAlign = fmTextAlignCenter
'wrap text
.WordWrap = True
.Font.Size = 18
End With
End Sub
Private Sub BtnC_Click()
With LblSecondNum
'to display text
.Caption = "12"
.TextAlign = fmTextAlignCenter
'wrap text
.WordWrap = True
.Font.Size = 18
End With
End Sub
Private Sub Calculate_Click()
'Me.Result = (Me.LblFirstNum + 0) + (Me.LblSecondNum + 0)
lblresult.Value = Val(LblFirstNum.Value) + Val(LblSecondNum.Value)
End Sub
Private Sub Clear_Click()
Unload UserForm1
UserForm1.Show
End Sub
Private Sub CommandButton2_Click()
'Exit Command
UserForm1.Hide
End Sub
Private Sub Result_Change()
End Sub
Private Sub Label4_Click()
End Sub
Private Sub LblFirstNum_Click()
End Sub
Private Sub LblSecondNum_Click()
End Sub
Private Sub LblSign_Click()
End Sub
Private Sub Subtraction_Click()
'Me.Result = (Me.LblFirstNum + 0) - (Me.LblSecondNum + 0)
lblresult.Value = Val(LblFirstNum.Value) - Val(LblSecondNum.Value)
End Sub
在 Calculate_Click()
和 Subtraction_Click()
中,您尝试使用 LblFirstNum.Value
和 LblSecondNum.Value
检索标签上显示的文本。标签没有 "Value" 属性。正确的 属性 是 "Caption".
在 Addition_Click()
中,不清楚 Result
是否是您尝试引用的控件的正确名称。在这段代码的其他地方,你有 lblresult
所以你应该确定哪个是正确的名称并在整个过程中使用它。
您可能还想检查 Clear_Click()
中 Unload 的用法(假设 UserForm1
是我们正在使用的形式)。您当前的代码可能会导致 UserForm1.Show
行
出现自动化错误
我正在尝试让加法和减法选项都起作用,并在每个标签框之间显示正确的符号。我 运行 犯了一个错误,VBA 突出显示了我的错误。框 A、B 和 C 的值需要分别为 10、11 和 12。当您单击一个框时,它应该用该值填充第一个空框。当两个框都已满并且您单击另一个字母时,不应更改它,而是在您单击清除之前值将被锁定。
当前代码:
Private Sub Addition_Click()
Me.Result = (Me.LblFirstNum + 0) + (Me.LblSecondNum + 0)
'lblresult = Val(LblFirstNum) + Val(LblSecondNum)
End Sub
Private Sub BtnA_Click()
With LblFirstNum
'to display text
.Caption = "10"
.TextAlign = fmTextAlignCenter
'wrap text
.WordWrap = True
.Font.Size = 18
End With
End Sub
Private Sub BtnB_Click()
With LblSecondNum
'to display text
.Caption = "11"
.TextAlign = fmTextAlignCenter
'wrap text
.WordWrap = True
.Font.Size = 18
End With
End Sub
Private Sub BtnC_Click()
With LblSecondNum
'to display text
.Caption = "12"
.TextAlign = fmTextAlignCenter
'wrap text
.WordWrap = True
.Font.Size = 18
End With
End Sub
Private Sub Calculate_Click()
'Me.Result = (Me.LblFirstNum + 0) + (Me.LblSecondNum + 0)
lblresult.Value = Val(LblFirstNum.Value) + Val(LblSecondNum.Value)
End Sub
Private Sub Clear_Click()
Unload UserForm1
UserForm1.Show
End Sub
Private Sub CommandButton2_Click()
'Exit Command
UserForm1.Hide
End Sub
Private Sub Result_Change()
End Sub
Private Sub Label4_Click()
End Sub
Private Sub LblFirstNum_Click()
End Sub
Private Sub LblSecondNum_Click()
End Sub
Private Sub LblSign_Click()
End Sub
Private Sub Subtraction_Click()
'Me.Result = (Me.LblFirstNum + 0) - (Me.LblSecondNum + 0)
lblresult.Value = Val(LblFirstNum.Value) - Val(LblSecondNum.Value)
End Sub
在 Calculate_Click()
和 Subtraction_Click()
中,您尝试使用 LblFirstNum.Value
和 LblSecondNum.Value
检索标签上显示的文本。标签没有 "Value" 属性。正确的 属性 是 "Caption".
在 Addition_Click()
中,不清楚 Result
是否是您尝试引用的控件的正确名称。在这段代码的其他地方,你有 lblresult
所以你应该确定哪个是正确的名称并在整个过程中使用它。
您可能还想检查 Clear_Click()
中 Unload 的用法(假设 UserForm1
是我们正在使用的形式)。您当前的代码可能会导致 UserForm1.Show
行