Выделите выделенную ячейку из гиперссылки и сохраните цвет другой ячейки. - PullRequest
0 голосов
/ 02 октября 2019

У меня есть два листа 1 и 2. У меня есть гиперссылка на листе 2, которая приведет меня к ячейке A2 на листе 1 и выделит ее желтым цветом. Но в то же время он также убирает цвет ячейки A1 на листе 1.

Как сохранить цвет ячейки A1 на листе 1?

Я использую этот код VBA в листе 2

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim i As Long
    For i = 1 To ThisWorkbook.Sheets.Count
        Sheets(i).UsedRange.Interior.ColorIndex = -4142
    Next
    ActiveSheet.Cells.Interior.ColorIndex = red
    Selection.Cells.Interior.ColorIndex = 6
End Sub

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Чтобы ответить на ваш вопрос: измените -4142 на 2

Однако этот код вызывает много вопросов. Почему это в листе, а не в отдельном модуле? Строка с «красным» не выполняется - что вы намерены? Чтобы избежать подобных проблем, всегда используйте следующий код в верхней части ваших модулей, и он сообщит вам об ошибке.

Option Explicit

Другие советы:

(2) use breaks to pause your code and then step through it as it executes
(3) use ranges to define the cells you are manipulating (e.g., dim r as range)
(4) use `r.select` as you debug your code to see which cell is being manipulated

Относительно (4), будьте осторожны с тем, какой лист активируется во время выполнения .select, и не забудьте удалить все операторы .select после завершения отладки.

0 голосов
/ 02 октября 2019

Предполагая, что вы все еще хотите удалить все остальные цвета внутри .UsedRange, вы можете сохранить цвет ячейки A1 перед удалением всех цветов, а затем перекрасить A1 после этого. Попробуйте этот код:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim i As Long, lngCI As Long
For i = 1 To ThisWorkbook.Sheets.Count
    lngCI = Sheets(i).Cells(1, 1).Interior.ColorIndex
    Sheets(i).UsedRange.Interior.ColorIndex = -4142
    Sheets(i).Cells(1, 1).Interior.ColorIndex = lngCI
Next
ActiveSheet.Cells.Interior.ColorIndex = red 'Don't think this works, you could try .Color = RGBRed
Selection.Cells.Interior.ColorIndex = 6
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...