Функция Excel - установка цвета ячейки на основе выбора другой ячейки - PullRequest
0 голосов
/ 26 апреля 2018

Мне нужно написать функцию для раскрашивания группы ячеек в одном ряду на основе цветов ячеек в другом ряду. Я пробовал несколько разных вариантов VBA, но это то, что я хочу сделать:

Public Function CopyColorFormat(Target As Range)

    If Not Target.Interior.Color Is Nothing Then

        ActiveCell.Interior.ThemeColor = Target.Interior.ThemeColor

    End If

End Function

Затем я перешел к A1 и установил формулу = CopyColorFormat (C1). (C1 - фиолетовый, и я хочу, чтобы A1 также был закрашен фиолетовым.) Однако, это приводит к # ЗНАЧЕНИЮ! ошибка в ячейке, я пытаюсь поставить функцию в.

Причина, по которой я хочу этого и не использую условное форматирование, заключается в том, что мне нужно применить это к тонне ячеек (через их соответствующие ячейки), и я не хочу устанавливать правила для каждой из них.

1 Ответ

0 голосов
/ 26 апреля 2018

Я не знаю много о функциях, но этот макрос должен помочь вам.

Sub color_cells()
Application.ScreenUpdating = False

Dim currentcell As Range
Dim copycell As Range
Dim current As Long
Dim copy As Long

Set currentcell = Range("A1")
Set copycell = Range("C1")
current = 1
copy = 1

For x = 1 To 8 ' instead of 8 - enter the number of rows you want the code to run on.
    If Not copycell.Interior.ColorIndex = xlNone Then

    copycell.copy
    currentcell.PasteSpecial xlPasteFormats

    End If

    current = current + 1
    copy = copy + 1

    Set currentcell = Range("A" & current)
    Set copycell = Range("C" & copy)
Next x

Application.ScreenUpdating = True
End Sub

Возможно, вы захотите указать, на какую рабочую книгу и рабочую таблицу будет работать код, если вы работаете с несколькими одновременно.

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