1

Итак, у меня есть большая электронная таблица (поэтому я не хочу устанавливать цвет каждой ячейки отдельно или вручную), и у меня есть много ячеек, копирующих другие ячейки. Так, например, у меня есть ячейки N9, N 3, N80, N117 и т.д. = IF (N $ 931 = "", "", N $ 931), поэтому, если что-то есть в N931, оно копируется в N9 и co, иначе это пустой. Я хотел бы иметь возможность сделать любой цвет фона, который я установил для N931, автоматически таким же, как в N9. Как я это сделаю?

Ура! Джон

1 ответ1

1

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

Предполагая, что ваши данные с цветами находятся в строке N и начинается в строке 500. Также предполагается, что ваша первая ячейка для копирования - N1 и ссылается на N500 как =if(N500="", "", N500) . Далее, предполагая, что вы скопируете эту формулу до N499; VBA будет выглядеть так:

Sub copyValuesAndFormats()
    Dim intRow As Integer
    Dim rngCopy As Range
    Dim rngPaste As Range


    'Loop from Rows 1 through 499
    For intRow = 1 To 499

        'Set the copy and paste range
        'CHANGE THE SHEET TO MATCH YOURS
        Set rngCopy = Sheet3.Range("N" & intRow + 499)
        Set rngPaste = Sheet3.Range("N" & intRow)

        'Test to see if rows 500+ have a value
        If rngCopy.Value <> "" Then

            'Since it has a value, copy the value and color
            rngPaste.Value = rngCopy.Value
            rngPaste.Interior.Color = rngCopy.Interior.Color

            'If you wish to copy the color of the font as well, uncomment the next line
            'rngPaste.Font.Color = rngCopy.Font.Color
        End If
    Next intRow
End sub

Если вы используете это, то никакие формулы не нужны в N1:N499. Они все равно будут уничтожены этим кодом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .