返回列表 上一主題 發帖

[發問] 請問此巨集為何錯??如何改?

[發問] 請問此巨集為何錯??如何改?

Private Sub Worksheet_Calculate()
    檢查
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    檢查
End Sub
Sub 檢查()
    Dim n, sz1, str As String

sz1 = Range("c2:C111")
    str = ""
    For i = 1 To UBound(sz1)
        If Val(SZ(i, 1)) = 0# Then   '--->錯在此行
            If Val(sz1(i, 1)) <> 0# Then str = str & vbCrLf & i + 1 & "===" & i + 1 & "=" & Sheets("Sheet3").Cells(i + 1, 2).Value
        Else
            n = Round((Val(sz1(i, 1)) - Val(SZ(i, 1))) / Val(SZ(i, 1)) * 100, 2)
             If Abs(n) >= 1 Then str = str & vbCrLf & Sheets("Sheet3").Cells(i + 1, 2).Value & "===>" & n
        End If
    Next i

    If Len(str) > 0 Then
        SZ = Range("C2:C111")
       ' MsgBox str, , "提示"
          CreateObject("Wscript.shell").Popup "" & str, 1, "Auto Closed MsgBox", 64
    End If
END SUB
'=============

本帖最後由 t8899 於 2013-8-10 16:01 編輯
回復  t8899
GBKEE 發表於 2013-8-10 14:16

此程式檢查c2:C111變動超過1%的儲存格
sz 為變動前
sz1 為變動後
所以 sz跟sz1 一樣 為 Range("c2:C111")
dim 改為  
Dim n, sz,sz1, str As String
再加sz =Range("c2:C111")
測試無作用???(變動前數值無法抓到)

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題