- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
26#
發表於 2013-8-12 22:51
| 只看該作者
回復 25# t8899
你的sz(i, 1) 我看到的值是 : 錯誤 2023
這在 VB 來看是一個 字串,
它不讓用 Val() 來轉換成數字,(所以會出現 13 的錯誤)
我建議用 CLng( 來取代 Val(
全部代換即可. (當然前提是類似上述字串的內容, 你仍然希望經過該 Sub 而不是做例外處理)- Sub 檢查()
- Dim n, sz1, str As String
- sz1 = Sheets("Sheet1").Range("F2:F54")
- str = ""
- For i = 1 To UBound(sz1)
- If CLng(sz(1, 1)) = 0 Then
- If CLng(sz1(i, 1)) <> 0# Then str = str & vbCrLf & "單元格 F" & i + 1 & " =========" & " B" & i + 1 & "=" & Sheets("Sheet1").Cells(i + 1, 2).Value
- Else
- n = Round((CLng(sz1(i, 1)) - CLng(sz(i, 1))) / CLng(sz(i, 1)) * 100, 2)
- If Abs(n) >= 1 Then str = str & vbCrLf & Sheets("Sheet1").Cells(i + 1, 2).Value & "===>" & n
- End If
- Next i
- If Len(str) > 0 Then
- sz = Sheets("Sheet1").Range("F2:F54")
- ' MsgBox str, , "提示"
- CreateObject("Wscript.shell").Popup "" & str, 3, "Auto Closed MsgBox", 64
- End If
- End Sub
複製代碼 |
|