EXCEL vb代码提示"类型不匹配"
答案:2 悬赏:20 手机版
解决时间 2021-03-21 22:46
- 提问者网友:沉默的哀伤
- 2021-03-21 11:35
EXCEL vb代码提示"类型不匹配"
最佳答案
- 五星知识达人网友:从此江山别
- 2021-03-21 12:55
Do While NumberSalary(i) = "" Or NumberSalary(i) < 6
第一个判断条件等号左右两边类型不一致,左边是long型的,右边是string型的
代码修改如下:
Dim TotalH As Byte
Public Sub EnterHours()
Dim H As Byte
Dim i As Byte
TotalH = 0
For i = 1 To 5
H = InputBox("请输入周" & UCase(i) & "工作时间(单位:小时):")
TotalH = TotalH + H
Next
MsgBox "本周工作共计" & TotalH & "小时"
End Sub
'输入员工姓名即薪资,消息框显示每个员工的本周总工资
Public Sub Salary()
Dim Totalalary() As Long
Dim NumberSalary() As Long
Dim Number() As String
Dim i, j As Integer
Dim isp As Integer
isp = vbYes
Do While isp = vbYes
i = i + 1
ReDim Number(i) As String
Number(i) = InputBox("请输入员工姓名")
If Number(i) = "" Then
isp = MsgBox("是否要继续输入员工姓名", vbYesNo)
If isp = vbYes Then
Number(i) = InputBox("请输入员工姓名")
End If
End If
ReDim NumberSalary(i) As Long
NumberSalary(i) = Val(InputBox("请输入" & Number(i) & "的时薪:"))
'时薪最小值为6,空值或小于6则需要重新输入
Do While NumberSalary(i) < 6
NumberSalary(i) = Val(InputBox("时薪是小值为6,请重新输入" & Number(i) & "的时薪:"))
Loop
ReDim Totalalary(i) As Long
Totalalary(i) = NumberSalary(i) * TotalH
Loop
For j = 1 To i - 1
MsgBox Number(j) & ":时薪" & NumberSalary(j) & ",本周总薪资" & Totalalary(j)
Next
End Sub追问老师好,您用的是什么软件,显示出上面的效果追答回答里面有选代码语言
第一个判断条件等号左右两边类型不一致,左边是long型的,右边是string型的
代码修改如下:
Dim TotalH As Byte
Public Sub EnterHours()
Dim H As Byte
Dim i As Byte
TotalH = 0
For i = 1 To 5
H = InputBox("请输入周" & UCase(i) & "工作时间(单位:小时):")
TotalH = TotalH + H
Next
MsgBox "本周工作共计" & TotalH & "小时"
End Sub
'输入员工姓名即薪资,消息框显示每个员工的本周总工资
Public Sub Salary()
Dim Totalalary() As Long
Dim NumberSalary() As Long
Dim Number() As String
Dim i, j As Integer
Dim isp As Integer
isp = vbYes
Do While isp = vbYes
i = i + 1
ReDim Number(i) As String
Number(i) = InputBox("请输入员工姓名")
If Number(i) = "" Then
isp = MsgBox("是否要继续输入员工姓名", vbYesNo)
If isp = vbYes Then
Number(i) = InputBox("请输入员工姓名")
End If
End If
ReDim NumberSalary(i) As Long
NumberSalary(i) = Val(InputBox("请输入" & Number(i) & "的时薪:"))
'时薪最小值为6,空值或小于6则需要重新输入
Do While NumberSalary(i) < 6
NumberSalary(i) = Val(InputBox("时薪是小值为6,请重新输入" & Number(i) & "的时薪:"))
Loop
ReDim Totalalary(i) As Long
Totalalary(i) = NumberSalary(i) * TotalH
Loop
For j = 1 To i - 1
MsgBox Number(j) & ":时薪" & NumberSalary(j) & ",本周总薪资" & Totalalary(j)
Next
End Sub追问老师好,您用的是什么软件,显示出上面的效果追答回答里面有选代码语言
全部回答
- 1楼网友:洎扰庸人
- 2021-03-21 13:30
因为NumberSalary的类型定义为了Long,就不能接受字符数据,也不能和字符数据进行比较(注意,空字串也是字符数据)
解决办法:
将 NumberSalary(i) = InputBox("请输入" & Number(i) & "的时薪:") 修改为:
NumberSalary(i) = Val(InputBox("请输入" & Number(i) & "的时薪:")) '强制转换为数值数据
将 Do While NumberSalary(i) = "" Or NumberSalary(i) < 6 修改为:
Do While NumberSalary(i) < 6
解决办法:
将 NumberSalary(i) = InputBox("请输入" & Number(i) & "的时薪:") 修改为:
NumberSalary(i) = Val(InputBox("请输入" & Number(i) & "的时薪:")) '强制转换为数值数据
将 Do While NumberSalary(i) = "" Or NumberSalary(i) < 6 修改为:
Do While NumberSalary(i) < 6
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯