Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 1 / 0
Регистрация: 28.07.2016
Сообщений: 142
1

Открыть путь из активной ячейки

04.03.2020, 23:15. Показов 1485. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пользуюсь таким макросом:
Visual Basic
1
2
3
4
5
Sub ОткрытьПуть()
Dim sFolder As String
 sFolder = ActiveCell
Shell "explorer " & sFolder, vbNormalFocus
End Sub
открывает путь указанный в выбранной ячейке.

Подскажите, пожалуйста, как дополнить макрос, чтобы в случае, если в ячейке нет пути или путь не существует, то выводилось сообщение "Пути нет"?

В столбце с указанными путями могут быть разные буквы дисков (изменить их не представляется возможным), но все они указывают на одну папку, например, Test. Как сделать так:
Массив [A, B, C...]
Цикл for
Если A:\Test существует, то переменная Диск = A, выход из цикла
Если нет, то дальше

Переменная a = ActiveCell - (минус) первая буква
sFolder = Переменная диск & Переменная a
Shell "explorer " & sFolder, vbNormalFocus
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2020, 23:15
Ответы с готовыми решениями:

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

Получить путь к активной папке
Подскажите пожалуйста, как можно получить путь к активной папке, открытой в проводнике.

Закрашивание активной ячейки
Подскажите, где может быть ошибка, в этом деле уж совсем новичок: Private Sub...

Выделение столбца от активной ячейки
Как выделить весь столбец до низа от активной ячейки.

2
841 / 472 / 79
Регистрация: 18.05.2016
Сообщений: 1,255
Записей в блоге: 4
05.03.2020, 07:10 2
Visual Basic
1
2
3
4
Set fso = CreateObject("Scripting.FileSystemObject")
If not fso.FolderExists("путь к папке") Then
    MsgBox "папка не существует"
End if
0
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
07.03.2020, 11:49 3
Лучший ответ Сообщение было отмечено Sisin как решение

Решение

Sisin, Есть подозрение, что Вы ищите что-то вроде этого :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Test()
    Dim p$: p = ActiveCell
    If Len(p) = 0 Then Exit Sub 'есть смысл заменить 0 на < диск + мин.кол-во симв. в имени файла 
    If IsOpen(p) Then
       ThisWorkbook.FollowHyperlink p
       'Shell "Explorer.exe " + p, vbNormalFocus
    Else
       MsgBox "Облом ...", vbCritical, ""
    End If
End Sub
 
Private Function IsOpen(p$) As Boolean
    On Error Resume Next: Dim i&
    IsOpen = Len(Dir$(p))
    If Not IsOpen Then
       For i = 65 To 90
           Mid$(p, 1, 1) = Chr$(i)
           IsOpen = Len(Dir$(p))
           If IsOpen Then Exit Function
       Next
    End If
End Function
1
07.03.2020, 11:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2020, 11:49
Помогаю со студенческими работами здесь

Закрасить диапазон от активной ячейки
Здравствуйте есть макрос который выделяет диапазон от активной ячейки до последней заполненной....

Установить диапазон активной ячейки
Здравствуйте, подскажите, пожалуйста как сделать так, чтобы активная ячейка работала только в...

Определение координат активной ячейки
Люди, подскажите, как достать rowindex и columnindex у активной ячейки?

Выведение активной ячейки на экран
На листе 30 000 строк. Путем Cells(i,3).Select нужная ячейка выделяется, но не факт,что она...

Координаты активной ячейки StringGrid
В общем задача такая: в произвольную ячейку вводим число. После нажатия Enter в этой ячейке...

Цвет активной ячейки DataGridView
После удаления текущей строки в ентом компоненте через раз теряется цвет активной ячейки (рисунки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru