永发信息网

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追问老师好,您用的是什么软件,显示出上面的效果追答回答里面有选代码语言
全部回答
  • 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯