Подскажите, пожалуйста, как- то можно отправить через Excel(VBA) таблицу с данными. То есть, к примеру, у меня есть таблица c данными на листе в ячейках B38:J39. Эту таблицу хотелось бы отправить в телеграм. Вижу пока только два варианта: отправка каждой строки в отдельном сообщении, где построчно будут данные из столбцов каждой строки; Либо отдельным макросом сначала формировать скриншот этого диапазона, отправлять его картинкой и удалять этот скриншот. Собрал вот такой код, он рабочий, но он отправляет данные только из одной ячейки, и если в ячейке есть переносы на другую строку, то текст всё равно приходит в "слипшимся" виде(т.е. без переносов):
Function RussianStringToURLEncode_New(ByVal txt AsString) AsString For i = 1ToLen(txt)
l = Mid(txt, i, 1) SelectCaseAscW(l) CaseIs > 4095: t = "%" & Hex(AscW(l) \ 64 \ 64 + 224) & "%" & Hex(AscW(l) \ 64) & "%" & Hex(8 * 16 + AscW(l) Mod64) CaseIs > 127: t = "%" & Hex(AscW(l) \ 64 + 192) & "%" & Hex(8 * 16 + AscW(l) Mod64) Case32: t = "%20" CaseElse: t = l EndSelect
RussianStringToURLEncode_New = RussianStringToURLEncode_New & t Next EndFunction
Sub MessegeToTelegram1() Dim Token AsString, ChatID AsString, message AsString, strPhoto AsString Dim sURL AsString, oHttp AsObject, sHTML AsString
message = RussianStringToURLEncode_New(Range("B38").Text) ' отправляется текст из ячейки B34 'message = RussianStringToURLEncode_New(Range("B38").Text) 'strPhoto = ConvertFileToBase64("C:\Users\.........\Desktop\12.jpg") 'strPhoto = "C:\Users\.......\Desktop\12.jpg"
Token = "......:........"
ChatID = "............."
sURL = "https://api.telegram.org/bot" & Token & "/sendMessage?chat_id=" & ChatID & "&text=" & message Set oHttp = CreateObject("Msxml2.XMLHTTP")
oHttp.Open "POST", sURL, False
oHttp.Send Set oHttp = Nothing EndSub
Вообще возможно, чтобы в телеграм сообщение приходило построчно, т.е. одна ячейка= одна строка: Первое сообщение: Первая строка: данные из ячейки B38 Вторая строка: данные из ячейки С38 . . . Последняя строка: данные из ячейки J38
Второе сообщение: Первая строка: данные из ячейки B39 Вторая строка: данные из ячейки С39 . . . Последняя строка: данные из ячейки J39 и т.д.
Не совсем еще представляю как это реально будет выглядеть и "удобочитаемо" ли это будет, по-этому еще пытался сделать отправку скришота таблицы в JPG, но тут так и не понял как правильно отправить файл с локального диска.
Прошу подсказать, где я допускаю ошибку.
Заранее спасибо. :help:
Добрый день, эксперты!
Подскажите, пожалуйста, как- то можно отправить через Excel(VBA) таблицу с данными. То есть, к примеру, у меня есть таблица c данными на листе в ячейках B38:J39. Эту таблицу хотелось бы отправить в телеграм. Вижу пока только два варианта: отправка каждой строки в отдельном сообщении, где построчно будут данные из столбцов каждой строки; Либо отдельным макросом сначала формировать скриншот этого диапазона, отправлять его картинкой и удалять этот скриншот. Собрал вот такой код, он рабочий, но он отправляет данные только из одной ячейки, и если в ячейке есть переносы на другую строку, то текст всё равно приходит в "слипшимся" виде(т.е. без переносов):
Function RussianStringToURLEncode_New(ByVal txt AsString) AsString For i = 1ToLen(txt)
l = Mid(txt, i, 1) SelectCaseAscW(l) CaseIs > 4095: t = "%" & Hex(AscW(l) \ 64 \ 64 + 224) & "%" & Hex(AscW(l) \ 64) & "%" & Hex(8 * 16 + AscW(l) Mod64) CaseIs > 127: t = "%" & Hex(AscW(l) \ 64 + 192) & "%" & Hex(8 * 16 + AscW(l) Mod64) Case32: t = "%20" CaseElse: t = l EndSelect
RussianStringToURLEncode_New = RussianStringToURLEncode_New & t Next EndFunction
Sub MessegeToTelegram1() Dim Token AsString, ChatID AsString, message AsString, strPhoto AsString Dim sURL AsString, oHttp AsObject, sHTML AsString
message = RussianStringToURLEncode_New(Range("B38").Text) ' отправляется текст из ячейки B34 'message = RussianStringToURLEncode_New(Range("B38").Text) 'strPhoto = ConvertFileToBase64("C:\Users\.........\Desktop\12.jpg") 'strPhoto = "C:\Users\.......\Desktop\12.jpg"
Token = "......:........"
ChatID = "............."
sURL = "https://api.telegram.org/bot" & Token & "/sendMessage?chat_id=" & ChatID & "&text=" & message Set oHttp = CreateObject("Msxml2.XMLHTTP")
oHttp.Open "POST", sURL, False
oHttp.Send Set oHttp = Nothing EndSub
Вообще возможно, чтобы в телеграм сообщение приходило построчно, т.е. одна ячейка= одна строка: Первое сообщение: Первая строка: данные из ячейки B38 Вторая строка: данные из ячейки С38 . . . Последняя строка: данные из ячейки J38
Второе сообщение: Первая строка: данные из ячейки B39 Вторая строка: данные из ячейки С39 . . . Последняя строка: данные из ячейки J39 и т.д.
Не совсем еще представляю как это реально будет выглядеть и "удобочитаемо" ли это будет, по-этому еще пытался сделать отправку скришота таблицы в JPG, но тут так и не понял как правильно отправить файл с локального диска.
doober, у меня не получается, или до меня не доходит=) у меня еще не такой продвинутый уровень VBA. можете в коде показать, что нужно добавить/изменить?
doober, у меня не получается, или до меня не доходит=) у меня еще не такой продвинутый уровень VBA. можете в коде показать, что нужно добавить/изменить?lanitfin
doober, у нас с Вами могут отличаться версии Excel?
Копирую полностью Вашу строку и получаю:
во-первых Кириллица отображается как "????" во-вторых: почему - то нет ни пробелов, ни переносов. И указываются не значения ячеек, а адрес ячейки. У Вас тоже приходят адреса ячеек, а не значения ячеек.
Ссылка работает, но замысел был в том, чтобы сриншот/таблица/документ выгружался с локального компьютера.
doober, у нас с Вами могут отличаться версии Excel?
Копирую полностью Вашу строку и получаю:
во-первых Кириллица отображается как "????" во-вторых: почему - то нет ни пробелов, ни переносов. И указываются не значения ячеек, а адрес ячейки. У Вас тоже приходят адреса ячеек, а не значения ячеек.
Ссылка работает, но замысел был в том, чтобы сриншот/таблица/документ выгружался с локального компьютера.lanitfin
Что можно предпринять, чтобы не отправлялась строка(строки), где ячейки пустые. То есть, к примеру, диапозон таблицы B38:J45, сообщения отправляются построчно, но начиная со строки 42 данных в строках нет, и сообщения отправляться не должны.
doober, да, работает. Спасибо. коды еще пока не сравнивал.
Подскажите, пожалуйста, правильно ли я делаю построчные сообщения(каждое сообщение- отдельная строка):
Что можно предпринять, чтобы не отправлялась строка(строки), где ячейки пустые. То есть, к примеру, диапозон таблицы B38:J45, сообщения отправляются построчно, но начиная со строки 42 данных в строках нет, и сообщения отправляться не должны.lanitfin
doober, Привет! А есть решение по отправке сообщений в телегу через VBAна MacBook? Пересмотрел много форумов, пишут что Microsoft не предусматривал разработку Microsoft XML 6.0 library на Mac. Может есть другой способ отправлять сообщения через Excel в Телеграмм? Заранее спасибо
doober, Привет! А есть решение по отправке сообщений в телегу через VBAна MacBook? Пересмотрел много форумов, пишут что Microsoft не предусматривал разработку Microsoft XML 6.0 library на Mac. Может есть другой способ отправлять сообщения через Excel в Телеграмм? Заранее спасибоkuzmapikar1992