Диапазон ссылок из вызова Excel для изменения формата - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать вызов из электронной таблицы, который изменится на формат ячейки. Когда я явно перечисляю диапазон (то есть "C7"), мой код работает. Когда я делаю это неявно в вызове функции Excel, это не так:

Если я добавлю = call_color в ячейку, «C7» станет зеленым. Если я поставлю = Color_Green (C7) в той же ячейке, он не будет работать.

Sub call_color()
    Dim TestVal As Range
    Set TestVal = Range("C7")
    Call Color_Green(TestVal)
End Sub
Sub Color_Green(ByRef MyRng As Range)
   ' Color Green Macro
    MyRng.Select
    With Selection.Interior
       .Color = RGB(0, 250, 0)
    End With
End Sub

Я хотел бы иметь возможность выполнять некоторые вычисления в vb и форматировать ячейку на основе этих вычислений. Как передать диапазон, который позволит функциям .interior работать?

1 Ответ

0 голосов
/ 28 июня 2018

Не используйте select или selection и предоставьте ссылку на родительский лист.

Sub call_color()
    Dim TestVal As Range
    Set TestVal = worksheets("sheet1").Range("C7")
    Color_Green TestVal
End Sub

Sub Color_Green(ByRef MyRng As Range)
   ' Color Green Macro
    MyRng.Interior.Color = RGB(0, 250, 0)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...