Другие языки программирования и технологии
Макрос для excel - VBA (гиперссылка)
Помогите пожалуйста написать макрос для excel. Нужно, что бы при наведении на гиперссылку отображалось содержимое папки (название всех файлов). Или при вставке гиперссылки в ячейки создавалась еще 1 строчка, в которой бы перечислялись все файлы которые находятся в папке. В vba совсем ничего не знаю. Но этот макрос мне нужен.
Получите, распишитесь. Функция возвращает все файлы в папке по маске.
Function GetFiles(fldr As String, Optional fltr As String = "*.*") As Variant
Dim sTemp As String, sHldr As String
If Right$(fldr, 1) <> "\" Then fldr = fldr & "\"
sTemp = Dir(fldr & fltr)
If sTemp = "" Then
FileList = Split("No files found", "|") 'ensures an array is returned
Exit Function
End If
Do
sHldr = Dir
If sHldr = "" Then Exit Do
sTemp = sTemp & "|" & sHldr
Loop
FileList = Split(sTemp, "|")
End Function
Function GetFiles(fldr As String, Optional fltr As String = "*.*") As Variant
Dim sTemp As String, sHldr As String
If Right$(fldr, 1) <> "\" Then fldr = fldr & "\"
sTemp = Dir(fldr & fltr)
If sTemp = "" Then
FileList = Split("No files found", "|") 'ensures an array is returned
Exit Function
End If
Do
sHldr = Dir
If sHldr = "" Then Exit Do
sTemp = sTemp & "|" & sHldr
Loop
FileList = Split(sTemp, "|")
End Function
Max Borzenkov
Что-то я тупой похоже. Подскажите как этим пользоваться? Зашел в создание макросов и там ввел ваш код, и мне вылезла ошибка. В онлайн компиляторах то же вылезают ошибки.
'Прототип =) Код вставить в Workbook
'Макс. длина подсказки по крайней мере в Excel 2003 = 255 символам.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target as Range)
Dim strName As String
Dim objHyperlink as Hyperlink
Dim intAttr As Integer
Dim intLen As Integer
For Each objHyperlink In Target.Hyperlinks
On Error Resume Next
intAttr = GetAttr(objHyperlink.Address)
Err.Clear
On Error GoTo 0
objHyperlink.ScreenTip = ""
If intAttr And vbDirectory <> 0 Then
strName = Dir(objHyperlink.Address & "\")
While strName <> ""
intLen = intLen + Len(strName) + 2
If intLen >= 255 Then Exit For
objHyperlink.ScreenTip = objHyperlink.ScreenTip + strName & vbCrLf
strName = Dir()
Wend
End If
Next
End Sub

'Макс. длина подсказки по крайней мере в Excel 2003 = 255 символам.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target as Range)
Dim strName As String
Dim objHyperlink as Hyperlink
Dim intAttr As Integer
Dim intLen As Integer
For Each objHyperlink In Target.Hyperlinks
On Error Resume Next
intAttr = GetAttr(objHyperlink.Address)
Err.Clear
On Error GoTo 0
objHyperlink.ScreenTip = ""
If intAttr And vbDirectory <> 0 Then
strName = Dir(objHyperlink.Address & "\")
While strName <> ""
intLen = intLen + Len(strName) + 2
If intLen >= 255 Then Exit For
objHyperlink.ScreenTip = objHyperlink.ScreenTip + strName & vbCrLf
strName = Dir()
Wend
End If
Next
End Sub

Похожие вопросы
- Excel vba макросы
- Вопрос по vba макросам в excel(внутри).
- Необходимо создать макрос для excel
- VBA - Парсинг в Excel-VBA курса ЦБ
- Программирование в Excel - VBA
- Вопрос по макросам MS Excel
- Microsoft Excel VBA
- Нужна помощь с написанием макроса в Excel.
- пишу макрос в Excel, есть вопрос, помогите(2)
- Excel. Макрос. Найти в Листе1 значение активной ячейки из Листа2.