簡體   English   中英

如果isblank vba高亮顯示單元格

[英]highlight cell if isblank vba

嗨,我有以下代碼,但它提示錯誤的object_worksheet范圍失敗。 我不確定我在做什么錯(我已經使用record宏找到了vba代碼並只是復制並粘貼了,除了我已經將所有selection都替換為ws.range(emptyrow)來指示范圍取決於另外,如果我將sub更改為sub highlightemptycell_change()並具有if語句,例如:“如果更改了任何單元格,則執行以下操作”我將如何用vba語言編寫?

sub highlightemptycell()
    Dim ws As Worksheet
    Dim r As Range
    Dim emptyrow As Long
    Dim err As Range

    Set ws = Worksheets("Master")
    emptyrow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1    '<<< safer....

    ws.Range(emptyrow).FormatConditions(1).StopIfTrue = False
    ws.Range(emptyrow).FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=ISBLANK(ws.range(emptyrow)"
    ws.Range(emptyrow).FormatConditions(ws.Range(emptyrow).FormatConditions.Count).SetFirstPriority
    With ws.Range(emptyrow).FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
    End With

我不確定您在做什么。 特別是,我不確定這條線的意義,

ws.Range(emptyrow).FormatConditions(1).StopIfTrue = False   

尤其是當單元執行時沒有條件格式時。

但是下面的宏似乎可以完成您的工作,如果將其清理干凈並使用正確的語法編寫

Option Explicit
Sub highlightemptycell()
    Dim ws As Worksheet
    Dim r As Range
    Dim emptyrow As Long
    Dim err As Range

    Dim rEmptyRow As Range '<-- range object added to use below

    Set ws = Worksheets("Master")
    Set rEmptyRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(rowoffset:=1)    '<<< safer....

With rEmptyRow.FormatConditions
    If .Count > 0 Then .Item(1).StopIfTrue = False
    .Add Type:=xlExpression, Formula1:= _
        "=ISBLANK(" & rEmptyRow.Address & ")"
        .Item(.Count).SetFirstPriority
    With .Item(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
    End With
End With
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM