Доброго времени суток.
Прошу вас подсказать.
Есть пользовательская функция и в качестве аргумента должно быть имя листа, но при подстановки имя листа в Worksheets().
Там на сколько я понимаю должны быть кавычки ("лист1"), пробывал формулу
k=chr(34)&Лист&chr(34)
Worksheets(k)
(получалось только тогда кода лист текст, но когда он являлся аргументом функции не получалось)
Код VBA:
Код |
---|
Function АДСС_ЯЧ_С_КОМ_ВЕРСИЯ_ДЛЯ_ВОПРОСА(ЗНАЧЕНИЕ_ИСКОМОГО_КОММЕНТАРИЯ As String, ИМЯ_ЛИСТА As String)
'ВОЗВРАЩАЕТ АДРЕС ЯЧЕЙКИ С ИСКОМЫМ КОММЕНТАРИЕМ НА НУЖНОМ ЛИСТЕ
Application.Volatile True 'АВТОМАТИЧЕСКОЕ ОБНОВЛЕНИЕ РЕЗУЛЬТАТОВ
Dim ЛИСТ As Worksheet
Dim ЯЧЕЙКА_РАБОЧЕЙ_ОБЛАСТИ
Dim КОММЕНТАРИЙ As String
ЛИСТ.Name = ИМЯ_ЛИСТА
On Error Resume Next
For Each ЯЧЕЙКА_РАБОЧЕЙ_ОБЛАСТИ In Worksheets(ЛИСТ.Name).UsedRange
'ЦИКЛ ПРОВЕРКИ КОММЕНТАРИЯ КАЖДОЙ ЯЧЕЙКИ В РАБОЧЕЙ ОБЛАСТИ
КОММЕНТАРИЙ = ЯЧЕЙКА_РАБОЧЕЙ_ОБЛАСТИ.Comment.Text
If Err.Number = 0 Then
If InStr(1, КОММЕНТАРИЙ, ЗНАЧЕНИЕ_ИСКОМОГО_КОММЕНТАРИЯ, vbTextCompare) <> 0 Then АДСС_ЯЧ_С_КОМ_ВЕРСИЯ_ДЛЯ_ВОПРОСА = ЯЧЕЙКА_РАБОЧЕЙ_ОБЛАСТИ.Address
Else
Err.Clear
End If
Next
End Function |