返回列表 上一主題 發帖

[發問] inputbox 出現型態不符合

[發問] inputbox 出現型態不符合

下面代碼如果按確定會正常執行,但若按下取消或esc則會出現
執行階段錯誤 '13':
abbr_d1a0d0cacc406045f3634b6fc1f88fd1.png
型態不符合
可以幫我看一下要怎麼改嗎?
  1. Sub 勝場()
  2. Sub 勝場1()
  3. ' 快速鍵: Ctrl+j

  4. row = ActiveCell.row '將當前所在行放進ROX變量中
  5. 勝場數 = Range("by" & row).Value '若有修改去找勝場位置是否還在BY欄
  6. If 勝場數 = "" Then
  7. 勝場數 = "0"
  8. End If
  9. Dim x As String
  10. x = InputBox("第" & row & "行" & "勝場:" & 勝場數 & "場" & vbCrLf & "是否勝利並加鍵入的數量上去", "確認窗口", 1)

  11. 'MsgBox x
  12. '回傳的值,1=確定 2=取消 3=異常終止 4=重試 5=略過 6=是 7=否
  13. If x > 0 Then
  14. Range("by" & row) = 勝場數 + x
  15. ElseIf x = "" Then
  16. MsgBox "已取消操作"
  17. End If
  18. End Sub
複製代碼

回復 2# 准提部林

可以正常操作了,感謝

另外想問一下
為何將
Dim x As Integer '宣告為整數 則會變成錯誤
還有若x 輸入負數則不動作
(無論x宣告為字串或整數都是)

將X值輸入負數
程式碼走到這
Range("by" & row) = 勝場數 + x
應該是 勝場數 + 負值
出來的數字應該是要 勝場數 - 值才對
  1. Dim x As Integer
  2. x = InputBox("第" & row & "行" & "勝場:" & 勝場數 & "場" & vbCrLf & "是否勝利並加鍵入的數量上去", "確認窗口", 1)
  3. '回傳的值,1=確定 2=取消 3=異常終止 4=重試 5=略過 6=是 7=否
  4. MsgBox x

  5. If Val(x) > 0 Then '將文字轉為數值
  6. Range("by" & row) = 勝場數 + x
  7. ElseIf x = "" Then
  8. MsgBox "已取消操作"
  9. End If
  10. End Sub
複製代碼

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題