Как мне назначить Внутренний объект для диапазона? - PullRequest
1 голос
/ 21 сентября 2019

Я создал переменную Interior в vba для хранения стиля определенной ячейки.Excel позволяет мне делать это, но когда я пытаюсь применить этот стиль к любой другой ячейке, он не работает.

Sub JustTest()
    Dim X As Interior
    Set X = Range("H12").Interior   'stores the Interior values into X

    X.TintAndShade = -0.05          'could alter the values if needed to

    Set Range("H15").Interior = X   'this line does not work

End Sub

Я ожидал, что смогу «скопировать» стиль из (в этом примере) диапазона H12до диапазона H15, но я получаю ошибку времени выполнения 438. Делая это таким образом, я мог изменить внутренние значения во время выполнения.Я думаю, это просто, но я болван.Есть идеи?Заранее спасибо!

1 Ответ

0 голосов
/ 21 сентября 2019

Вы можете использовать подпрограмму для установки всех (необъектных) свойств интерьера, таким образом достигая желаемого.Вместо вашего оператора Set Range("H15").Interior = X вы должны использовать Call setInterior(Range("H15"),X).

Sub setInterior(rg As Range, rgInt As interior)
    Dim rangeInt As interior

    Set rangeInt = rg.interior

    On Error Resume Next

    With rangeInt 
'        .Application
        .Color = rgInt.Color
        .ColorIndex = rgInt.ColorIndex
'        .Creator
'        .Gradient
         .InvertIfNegative = rgInt.InvertIfNegative
'        .Parent
        .Pattern = rgInt.Pattern
        .PatternColor = rgInt.PatternColor
        .PatternColorIndex = rgInt.PatternColorIndex
        .PatternThemeColor = rgInt.PatternThemeColor
        .PatternTintAndShade = rgInt.PatternTintAndShade
        .ThemeColor = rgInt.ThemeColor
        .TintAndShade = rgInt.TintAndShade
    End With

End Sub

Свойства объекта / только для чтения закомментированы, но показаны для полноты.InvertIfNegative иногда имеет ошибку, поэтому оператор On Error Resume Next позволяет избежать проблем с ним.

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