Excel VBA单元格存储百分比格式并比较问题

时间:2018-11-08 03:28:22

标签: excel vba

伙计们,我对使用vba比较细胞与细胞的渗透力有一些疑问

这是我的代码:

dim ws as worksheet
dim LastRow as long

For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "test1" And ws.Name <> "test2" Then
LastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row

    For i = 3 To LastRow
            If ws.Range("M" & i).Value = 0 Then  '<---here it give me error
                ws.Range("M" & i).Locked = True
            End If
    Next i
End If
Next ws

在我的Excel的M列中,从M3开始的整个列都是百分比格式类型。

我想确定单元格是否为0%(假设range(“ M5”)为0%),我想检查格式保护以锁定单元格,最后我将执行保护工作表。

但是我已经测试了许多代码,例如:

ws.Range("M" & i).Value = 0
ws.Range("M" & i) = 0
ws.Range("M" & i).Value = "0"
ws.Range("M" & i) = "0%"

它仍然给我输入类型不匹配错误,所以有人告诉我这个问题吗?

1 个答案:

答案 0 :(得分:0)

尝试首先在单元格上添加一些错误检查:

For i = 3 To LastRow
    If Not IsError(ws.Range("M" & i)) Then
        If ws.Range("M" & i).Value = 0 Then
            ws.Range("M" & i).Locked = True
        End If
    End If
Next i