Как - Условное форматирование в ячейке, если ее значение равно значению другой ячейки на ЛЮБОЙ вкладке Рабочей книги - PullRequest
0 голосов
/ 27 декабря 2018
  • Excel (Office 2007)
  • Рабочая книга с 5 вкладками
  • В каждой вкладке есть столбец A с абсолютными URL-адресами в каждой строке
  • В каждой вкладке естьстолбец B, который извлекает домен только из абсолютного URL-адреса, записанного в соседней ячейке в столбце A (пример: если A1 содержит следующее значение: https://stackoverflow.com/questions/, то B1 будет содержать следующее значение: stackoverflow.com

Итак, мой вопрос (на самом деле мой крик о помощи) был бы следующим: как сделать каждую ячейку столбца (B) на любой из вкладок рабочей книги, чтобы получить (скажем, красный фон, всякий раз, когда значение в соответствующейячейка оказывается равной значению в другой ячейке столбца (B) ЛЮБОЙ из 5 вкладок рабочей книги.

Практически объяснено:

25 декабря TAB-1 | В A23 я ввожуабсолютный URL «X / questions /» | B23 создает значение «X»

31 декабря TAB-4 | В A57 я ввожу абсолютный URL «X / что-то другое /» | B57 создает значение «X»"

Так что мне нужен B57 для автомашиныполучаю ... красный фон, который уведомляет меня о том, что ссылка из домена, указанного в B57, уже была обработана, в примере выше, 6 дней назад.

Сильно обязана ^ _ ^

1 Ответ

0 голосов
/ 27 декабря 2018

сначала нажмите Alt + F11, чтобы перейти в редактор Visual Basic.Вставьте новый модуль и вставьте этот код:

Sub Elio()

Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, ws4 As Worksheet, ws5 As Worksheet
Dim arrLink() As Variant, xrow As Long, arow As Long, alink                 As Variant, i As Long

Set ws1 = ActiveWorkbook.Worksheets("Sheet1")
Set ws2 = ActiveWorkbook.Worksheets("Sheet2")
Set ws3 = ActiveWorkbook.Worksheets("Sheet3")
Set ws4 = ActiveWorkbook.Worksheets("Sheet4")
Set ws5 = ActiveWorkbook.Worksheets("Sheet5")

i = 0
arow = 0
xrow = 2

Do Until ws1.Cells(xrow, 2).Value = ""
arrLink(arow) = ws1.Cells(xrow, 2).Value
xrow = xrow + 1
arow = arow + 1
Loop

xrow = 2

Do Until ws2.Cells(xrow, 2).Value = ""
arrLink(arow) = ws2.Cells(xrow, 2).Value
xrow = xrow + 1
arow = arow + 1
Loop

xrow = 2

Do Until ws3.Cells(xrow, 2).Value = ""
arrLink(arow) = ws3.Cells(xrow, 2).Value
xrow = xrow + 1
arow = arow + 1
Loop

xrow = 2

Do Until ws4.Cells(xrow, 2).Value = ""
arrLink(arow) = ws4.Cells(xrow, 2).Value
xrow = xrow + 1
arow = arow + 1
Loop

xrow = 2

Do Until ws5.Cells(xrow, 2).Value = ""
arrLink(arow) = ws5.Cells(xrow, 2).Value
xrow = xrow + 1
arow = arow + 1
Loop

xrow = 2

Do Until ws1.Cells(xrow, 2).Value = ""
    For i = LBound(arrLink) To UBound(arrLink)
        If arrLink(i) = ws1.Cells(xrow, 2).Value Then
            ws1.Cells(xrow, 2).Style = "Bad"
        Else:
        End If
    Next i
xrow = xrow + 1
Loop

xrow = 2

Do Until ws2.Cells(xrow, 2).Value = ""
    For i = LBound(arrLink) To UBound(arrLink)
        If arrLink(i) = ws2.Cells(xrow, 2).Value Then
            ws2.Cells(xrow, 2).Style = "Bad"
        Else:
        End If
    Next i
xrow = xrow + 1
Loop

xrow = 2

Do Until ws3.Cells(xrow, 2).Value = ""
    For i = LBound(arrLink) To UBound(arrLink)
        If arrLink(i) = ws3.Cells(xrow, 2).Value Then
            ws3.Cells(xrow, 2).Style = "Bad"
        Else:
        End If
    Next i
xrow = xrow + 1
Loop

xrow = 2

Do Until ws4.Cells(xrow, 2).Value = ""
    For i = LBound(arrLink) To UBound(arrLink)
        If arrLink(i) = ws4.Cells(xrow, 2).Value Then
            ws4.Cells(xrow, 2).Style = "Bad"
        Else:
        End If
    Next i
xrow = xrow + 1
Loop

xrow = 2

Do Until ws5.Cells(xrow, 2).Value = ""
    For i = LBound(arrLink) To UBound(arrLink)
        If arrLink(i) = ws5.Cells(xrow, 2).Value Then
            ws5.Cells(xrow, 2).Style = "Bad"
        Else:
        End If
    Next i
xrow = xrow + 1
Loop

End Sub

Это должно выделить все ячейки в столбце B на каждом листе, дублирующее значение которого найдено на любом из других листов.
Все, что вам нужноУбедитесь, что имя каждого листа совпадает с именами листов в вашей книге.Я не проверял это, чтобы вы могли получить ошибки.

...