Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Информационные технологии
+1

Вопрос по Excel

Как сделать так, чтобы в Excel закрашивалась ячейка с гиперссылкой на папку в которую положили файл, а при удалении оставалась бесцветной?

По дате
По рейтингу
Аватар пользователя
Новичок
1мес

В Excel нет встроенной функции, которая автоматически отслеживает, появился ли файл в папке по ссылке, и закрашивает ячейку на основе этого. Но можно реализовать это через макрос (VBA). Вот пошаговое решение:

Что нужно:

  1. Ячейка содержит гиперссылку на папку.

  2. Нужно, чтобы ячейка:

    • окрашивалась, если в папке появился хотя бы один файл;

    • оставалась бесцветной, если папка пустая.

📌 Решение на VBA:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.

  2. Вставьте код ниже в модуль (через Insert > Module):

1234567891011121314151617181920212223242526272829303132333435
Sub CheckFoldersAndColorCells()
    Dim rng As Range
    Dim cell As Range
    Dim folderPath As String
    Dim filesInFolder As Object

    ' Задать диапазон ячеек с гиперссылками
    Set rng = Sheet1.Range("A2:A100") ' Замените на ваш диапазон

    For Each cell In rng
        If cell.Hyperlinks.Count > 0 Then
            folderPath = cell.Hyperlinks(1).Address

            ' Убедимся, что путь заканчивается на "\"
            If Right(folderPath, 1) <> "\" Then
                folderPath = folderPath & "\"
            End If

            On Error Resume Next
            Set filesInFolder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath).Files
            On Error GoTo 0

            If Not filesInFolder Is Nothing Then
                If filesInFolder.Count > 0 Then
                    cell.Interior.Color = RGB(198, 239, 206) ' Светло-зелёный
                Else
                    cell.Interior.ColorIndex = xlNone ' Убрать цвет
                End If
            Else
                cell.Interior.Color = RGB(255, 199, 206) ' Красный — если путь не найден
            End If
        End If
    Next cell
End Sub

🟡 Как использовать:

  • Закройте редактор VBA.

  • Нажмите Alt + F8, выберите CheckFoldersAndColorCells, нажмите Выполнить.

⚙️ Опционально:

  • Можно запускать макрос автоматически при открытии файла или по кнопке.

  • Для надёжной работы убедитесь, что у Excel есть доступ к этим папкам (например, если это сетевые диски).

❗Важно:

  • Макрос не будет работать, если файл Excel сохранён как .xlsx. Нужно сохранить как .xlsm (с поддержкой макросов).

  • Такой макрос не отслеживает изменения в реальном времени. Чтобы обновить цвета, нужно повторно запустить макрос (можно повесить на кнопку).

Экономим ваше время. GLAVQA

Аватар пользователя
Ученик
3нед

Просто сделай условное форматирование: установи правило, что если ячейка содержит гиперссылку, она окрашивается, а при удалении — возвращается к исходному стилю. Для этого используй формулу типа =ISBLANK(A1) или =HYPERLINK(A1). В настройках условного форматирования выбери нужный цвет для гиперссылки и сброс при удалении. Так ячейка будет автоматически менять цвет в зависимости от наличия гиперссылки.