Страницы: 1
RSS
Функции для обработки текстовой ссылки на ячейку (Лист1!$D$11:$G$17), Одмын закрыл тему без решения
 
вопрос связан с компонентом refedit , с его помощью мне нужно выбрать ячейку эталон и диаппазон обработки (разные рефы естественно ) в итоге я получаю что то типа :
Код
Лист1!$D$11:$G$17
Есть ли функции в VBS позволяющие достать с этой строки лист номер столбца/ колонки ... а вообще бы в иделаи запихать в Range ?

предложеное решение от ,buchlotnik
Код
r = Split("Лист1!$D$11:$G$17", "!") 
Sheets(r(0)).Range(r(1))
Приходило в голову , но вопрос в налиичи именно штатных экселевских функций, а вдруг еще и имя файлов ...

так же мне приходило в голову, создать лист всунуть туда функуию диапазон и ли еще чего и ей выдать в качестве параметра данную строчку , но тогда возникает еще боьше других проблем ...

Я не верю что в VBS нет встроенных функций для работы с сылками ... но натйине могу

Андрей VG, Вы закрыли тему по 2.6 но  это не зщапрещено , это не рекомендовано ... ПЖСТ соблюдайте свои же праивла ... запрещено это 3.х
/Дайте мне компилятор ДНК и я изменю мир (с) Я
 
Цитата
Fastereus написал:
Я не верю
возможности языка - это не вопрос веры, достаточно открыть справку. В VBS нет функций для вынимания имени листа Excel, в VBA тоже - и да, это разные языки
Цитата
Fastereus написал:
штатных экселевских функций
нет тем более
Может потому и найти ничего не можете, что слишком вольно смешиваете понятия?

Пы.сы. Андрей VG не мог закрыть тему ибо не является модератором. Это ясно из его статуса, который явно и открыто отображается (впрочем как и справка является открытой и доступной)

Пы.пы.сы. шальная мысль - вам не это надо? (это VBA если что)
Код
s = "Лист1!$D$11:$G$17"
r = Range(s) '"запихивание" в Range
r1 = r.Row 'номер строки
c1 = r.Column ' номер столбца
r2 = r.Rows.Count ' число строк
c2 = r.Columns.Count ' число столбцов
Изменено: buchlotnik - 15.09.2020 08:53:36
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
В VBS нет функций для вынимания имени листа Excel, в VBA тоже - и да, это разные языки
Михаил, языки почти те же, другое дело что объектная модель отличается и среда исполнения разная, но если подключить объект приложения Excel, то VBS может тоже самое.
По вопросам из тем форума, личку не читаю.
 
БМВ, с таким подходом можно и на плюсах писать - всё одно программирование.   Функция вынимания имени листа от этого не появится (или подключение объекта Excel в  VBS решает проблему?)
Изменено: buchlotnik - 15.09.2020 11:00:04
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik,  Я уточнил только то что синтаксиси VBS и VBA даже не сходны, а одинаковый, так как в основе VB, другое дело что S не обладает рядом расширенных команд и функций. Основная процедура не требует названия, и подпрограмм может быть написана прямо посреди основного кода
Код
...
a=Mysub(b)
Function MySub(B)
b=B+1
End function
wscript.echo a
...


А в целом тема вырвана из контекста и без примера можно гадать долго. например
Код
s = "Лист1!$D$11:$G$17"
r = Range(s) '"запихивание" в Range

сработает только если есть этот лист в текущей книге.Fastereus,  вы можете более понятно написать что есть  - что надо. Желательно с примером в файле.
Изменено: БМВ - 15.09.2020 11:54:57
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
 buchlotnik ,  вы можете более понятно написать что есть  - что надо. Желательно с примером в файле.
с каких это пор с отвечальщиков требуют разъяснений, да еще и с примерами?
И мой код работает в моем же файле, на работоспособность в файле ТС-а я не претендовал - его все равно нет
Изменено: buchlotnik - 15.09.2020 11:51:19
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
с каких это пор с отвечальщиков требуют разъяснений, да еще и с примерами?
пардон, исправил  :D
По вопросам из тем форума, личку не читаю.
 
Медведь к зиме готовится, а вы его отвлекаете пустяками 8-0

Добавлю, что Excel VBA отличается от VBS тем, что ищет идентификаторы среди свойств и методов объекта Excel.Application, а VBS с этим объектом не знаком. То есть, Range("A1") это Application.Range("A1"), Sheets(1) это Application.Sheets(1) и т.д.
Изменено: sokol92 - 15.09.2020 13:07:46
Владимир
Страницы: 1
Наверх