Беда с условным поиском неравных ячеек Стили - PullRequest
0 голосов
/ 06 июня 2019

Подводя итог, я пытаюсь просмотреть диапазон ячеек и найти те, которые не являются обычными обычными, незаполненными ячейками.В диапазоне может быть только 2 из этих типов клеток.Они могут отличаться по стилю или цвету фона.Я использовал «MsgBox», чтобы выделить проблему.Я сузил его до «операторов If», сравнивающих «ячейку» с «trackedCell1» или «regCell».Для справки я использовал все эти переменные, чтобы отслеживать разные вещи в файле.«regCell» - это нейтральная контрольная ячейка, которая должна иметь значение «Normal, non-fill», «trackedcell's 1 и 2» будет удерживать найденные ячейки в диапазоне, а «cell» перемещается вниз по диапазону.«NewRange» - это переменная, которую разделяет мой макрос, которая находит полный диапазон переменных используемого листа Excel.

Большинство моих попыток прокомментированы.Я попытался использовать оба «<>» для not equals и «Not Like» в условном выражении «And».В своей последней попытке я разбил одно большое «утверждение», которое рассматривало как индекс стиля, так и цвет салона, и разделил их на два «утверждения»

Dim regCell As Range
Set regCell = Application.Range("K2")
'    regCell.Style = "Normal"
'    regCell.Interior.ColorIndex = 0
Dim trackedCell1 As Range
Set trackedCell1 = Application.Range("K4")
'    trackedCell1.Style = "Normal"
'    trackedCell1.Interior.ColorIndex = 0
Dim trackedCell2 As Range
Set trackedCell2 = Application.Range("K5")
'    trackedCell2.Style = "Normal"
'    trackedCell2.Interior.ColorIndex = 0
For Each cell In Range(NewRange)
    'If cell.Style <> "Normal" And cell.Interior.ColorIndex <> 0 Then
    If cell.Style <> regCell.Style Then
        'MsgBox "first runs"
        If cell.Interior.ColorIndex <> regCell.Interior.ColorIndex Then
            'MsgBox "Second runs"

            trackedCell1.Style = cell.Style
            trackedCell1.Interior.ColorIndex = cell.Interior.ColorIndex
            If trackedCell1.Style <> cell.Style And trackedCell1.Interior.ColorIndex <> cell.Interior.ColorIndex Then
                'MsgBox "This works"
                trackedCell2.Style = cell.Style
                trackedCell2.Interior.ColorIndex = cell.Interior.ColorIndex
            End If
'            If trackedCell1.Style Like "*Normal*" Or trackedCell1.Interior.ColorIndex Like "*0*" Then
'                trackedCell1.Style = cell.Style
'                trackedCell1.Interior.ColorIndex = cell.Interior.ColorIndex
'                'MsgBox "We have first if"
'            ElseIf Not (trackedCell1.Style Like "*Normal*") Or Not (trackedCell1.Interior.ColorIndex Like "*0*") Then
'                trackedCell2.Style = cell.Style
'                trackedCell2.Interior.ColorIndex = cell.Interior.ColorIndex
'            Else

'            End If
        End If
    End If
Next cell
MsgBox trackedCell1.Style & vbCrLf & trackedCell1.Interior.ColorIndex
MsgBox trackedCell2.Style & vbCrLf & trackedCell2.Interior.ColorIndex

На данный момент цель состоит в том, чтобы получить дваразные ячейки, обозначенные другим стилем или цветом, которые должны быть назначены другой неиспользуемой ячейке, поэтому я могу легко вызвать сравнение позже в макросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...