Вложено, если функция в VBA - PullRequest
0 голосов
/ 11 сентября 2018

Итак, я хочу код, который будет выполнять следующее ...

Если K = Business и E = null выделите E

и

Если K = Бизнес и F = ноль Выделите F

Каждый раз, когда я пытаюсь это сказать, несоответствие типа или ошибка объекта

Sub business() 
    Dim a As String 
    Dim b As String 
    Dim c As String

    Set a.Value = Range("K2:K300") 
    Set b.Value = Range("E2:E300") 
    Set c.Value = Range("F2:F200")

    If a = "Email" And b = "" Or c = "" Then 
        Cell.Interior.ColorIndex = 3 
    Else
        Cell.Interior.ColorIndex = 0 
    End If 
End Sub

Это фрагмент моего рабочего листа

1 Ответ

0 голосов
/ 11 сентября 2018

вы можете избежать петель:

With Range("A1").CurrentRegion.Columns(11) ' reference your database (assuming header row is row 1, starts at column 1 and no header is blank)
    If WorksheetFunction.CountIf(.Cells, "Business") > 0 Then 'if any "business" occurrence
        .Replace what:="Business", replacement:=1, lookat:=xlWhole ' mark "business" row with a number
        On Error Resume Next
        With Intersect(.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow, .Offset(, -6)) ' reference "marked" rows cell in column E (6th column left of column K)
            .SpecialCells(xlCellTypeBlanks).Interior.Color = vbRed 'mark any referenced range blank cell in red
            .Offset(, 1).SpecialCells(xlCellTypeBlanks).Interior.Color = vbRed 'mark any referenced range 1 column right blank cell in red
        End With
        On Error GoTo 0
        .Replace what:=1, replacement:="Business", lookat:=xlWhole ' get "business" back in place
    End If
End With
...