Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
Пользователь
Сообщений: Регистрация: 19.11.2014
09.02.2023 10:43:28
У нас наверное разный гугл
Скорее всего у Вас нет этого компонента Set oHttp = CreateObject("Msxml2.XMLHTTP")
"Правильно заданный вопрос,половина ответа!"
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
Пользователь
Сообщений: Регистрация: 19.11.2014
31.10.2022 08:57:58
Цитата
написал:
Цитата
написал: Добрый день, я решил эту проблему отсылая фото как документ.
Точно! Дмитрий, точно! Огромное спасибо!
Осталось разобраться, как отсылать файлы с русскими названиями. Ибо в противном случае на Телеграм приходит, что-то несуразное.
Ни как Как вариант пробуйте переименовывать через транслит типа eto imya fayla.xlsx
"Правильно заданный вопрос,половина ответа!"
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
Пользователь
Сообщений: Регистрация: 19.11.2014
25.10.2018 11:10:45
Отправить символ перевода строки не получилось, я пробовал передавать CRLF в URL-Encoded запросе в виде %0D%
Цитата
xseed написал: Отправить символ перевода строки не получилось, я пробовал передавать CRLF в URL-Encoded запросе в виде %0D%0A, но символ не передается в сообщении.
Попробуйте %0A
"Правильно заданный вопрос,половина ответа!"
Power Query: как в Value.Metadata передать название источника текстовой переменной
Пользователь
Сообщений: Регистрация: 19.11.2014
07.05.2018 16:43:48
Power BI Не использую , пока !!!!!
Задача следущая: есть две таблици ,
Продукция_TimberLog
Порода_TimberLog
Продукция
Порода
Фансировина
дуб
Пиловник
ясен
Баланси
клен
Техсировина
липа
Техсировина для ВТП
граб
вільха
из столбцов Продукция_TimberLog[Продукция] и Порода_TimberLog[Порода] необходимо декартово произведение как здесь
Для описания создана таблица Настройка_TimberLog где в шаге будет описываться параметры декартового произведения
Настройка_TimberLog
Name
NameTableL
NameColumnL
NameTableR
NameColumnR
TimberLog
Продукция_TimberLog
Продукция
Порода_TimberLog
Порода
EOD
Продукція
Найменування
Порода
Порода_Lower
также обьеденим значения полученых столбцов и получим что то типа такое
NameColumnL
NameColumnR
Продукция_Порода
Фансировина
дуб
Фансировина дуб
Фансировина
ясен
Фансировина ясен
Фансировина
клен
Фансировина клен
Фансировина
липа
Фансировина липа
Фансировина
граб
Фансировина граб
Фансировина
вільха
Фансировина вільха
Пиловник
дуб
Пиловник дуб
Пиловник
ясен
Пиловник ясен
Пиловник
клен
Пиловник клен
используя этот способ
без использования Checkbox - галочки (отметки) ставятся макросом (с использованием шрифта Marlett) отобрать только нужные значения
и эту статью
получаем
Декартово произведение TimberLog_Выбор и Выбор в ячейке
NameColumnL
NameColumnR
Продукция_Порода
Выбор
Фансировина
дуб
Фансировина дуб
Фансировина
ясен
Фансировина ясен
a
Фансировина
клен
Фансировина клен
a
Фансировина
липа
Фансировина липа
a
Фансировина
граб
Фансировина граб
a
Фансировина
вільха
Фансировина вільха
a
Пиловник
дуб
Пиловник дуб
a
Пиловник
ясен
Пиловник ясен
a
получить через запрос список постановки для столбца таблицы
Продукция_Порода
Фансировина ясен
Фансировина клен
Фансировина липа
Фансировина граб
Фансировина вільха
Пиловник дуб
Пиловник ясен
Пиловник клен
Изменено: - 07.05.2018 19:35:24
"Правильно заданный вопрос,половина ответа!"
Power Query: как в Value.Metadata передать название источника текстовой переменной
Пользователь
Сообщений: Регистрация: 19.11.2014
07.05.2018 15:50:45
Цитата
Максим Зеленский написал: // SelectQuery(name as text)=> let Source = Expression.Evaluate(name, #shared)in Source
Помогло !!!!!!
"Правильно заданный вопрос,половина ответа!"
Power Query: как в Value.Metadata передать название источника текстовой переменной
Пользователь
Сообщений: Регистрация: 19.11.2014
07.05.2018 15:46:50
Цитата
Максим Зеленский написал: в функции Выбор у вас какие-то преобразования
Я тут еще раз повторил
Код
/*Выбор
Получаем ссылку на умную таблицу Ехсel и приводим тип столбцов по первой строке
Используются функции
Excel_CurrentWorkbookName
Table_TableColumnTypesToFirstRowsTypes
*/
(tablename as text)=>
let
// tablename="Продукция_Порода_TimberLog_Выбор",
fnName="Excel.CurrentWorkbookName",
fn= Load(fnName),
//---------------------------------------------
table=Function.Invoke(fn,{tablename}),
NewColumnName=Value.Metadata(table)[NewColumnName],
ТипПоПервойСтроке =Table_TableColumnTypesToFirstRowsTypes(table),
resultat=ТипПоПервойСтроке meta [NewColumnName=NewColumnName]
in
resultat
Изменено: - 07.05.2018 15:47:04
"Правильно заданный вопрос,половина ответа!"
Power Query: как в Value.Metadata передать название источника текстовой переменной
Пользователь
Сообщений: Регистрация: 19.11.2014
07.05.2018 11:37:34
Есть таблицы созданые запросом EOD_Выбор и TimberLog_Выбор
Код
let
tablename="Настройка_TimberLog",
Steep="TimberLog",
ВыборПараметр= Steep & "_Выбор",
Объединение = fnBeautiful_Join(tablename,Steep),
NewColumnName = Value.Metadata(Объединение)[NewColumnName],
ОбъединениеВыбор = Table.NestedJoin(Объединение,{"Продукция_Порода"},Выбор(ВыборПараметр),{NewColumnName},"Выбор.1",JoinKind.LeftOuter),
РазвернутьТолькоВыбор= Table.ExpandTableColumn(ОбъединениеВыбор, "Выбор.1", {"Выбор"}, {"Выбор"}),
resultat=РазвернутьТолькоВыбор meta [NewColumnName=NewColumnName]
in
//Объединение
resultat
Как правильно получить NewColumnName передавши Steep & "_Выбор"
let Steep="EOD", //Steep="TimberLog", z=EOD_Выбор, Источник = Выбор(Steep & "_Выбор"),//=EOD_Выбор=z #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([Выбор] = "a")), z=EOD_Выбор, //Работает NewColumnName=Value.Metadata(EOD_Выбор)[NewColumnName], NewColumnName=Value.Metadata(z)[NewColumnName], // НЕ Работает NewColumnName=Value.Metadata(Steep & "_Выбор")[NewColumnName], NewColumnName=Value.Metadata(Источник)[NewColumnName],
// Источник #"Другие удаленные столбцы" = Table.SelectColumns(#"Строки с примененным фильтром",{NewColumnName}) in #"Другие удаленные столбцы"
"Правильно заданный вопрос,половина ответа!"
Помогите сформулировать запрос, который будет брать значение для переменного фильтра равные значением одной из таблиц в файле
Пользователь
Сообщений: Регистрация: 19.11.2014
02.05.2018 18:31:51
Цитата
Андрей VG написал: Доброе время суток volond75 , коллега, долго это. Лучше так
Согласен , но хочу сделать так Выпадающий список с накопительным результатом Где то видел реализацию в Excel А потом применить мой способ получая список из 1 ячейки Понимаю что ограничение на 1500 символов но мне достаточно
Изменено: - 02.05.2018 18:33:49
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 17:13:48
Цитата
Dyroff написал: Если представить что есть некий тег
Только увидел Но принципа не понял как присваевается тег
Изменено: - 27.04.2018 17:20:38
"Правильно заданный вопрос,половина ответа!"
Помогите сформулировать запрос, который будет брать значение для переменного фильтра равные значением одной из таблиц в файле
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 17:04:50
добавлю в копилку "Отфильтровать таблицу на основе другого столбца таблицы или списка"
= Table.SelectRows (Sales_Customers, каждый List.Contains (Query1, [CustomerCategoryID]))
List.Contains проверит, будет ли каждая строка в таблице иметь номер CustomerCategoryID, который существует в списке, и возвращает true, если это произойдет, и тогда ваша таблица будет содержать только строки, в которые возвращается True
Если вы хотите исключить значения, которые у вас есть в своем списке, вы можете изменить выражение на
= Table.SelectRows (Sales_Customers, каждый List.Contains (Query1, [CustomerCategoryID]) = false
Изменено: - 27.04.2018 17:07:43
"Правильно заданный вопрос,половина ответа!"
Как сделать в редакторе запросов переменный фильтр по нескольким значениям?
List.Numbers(start as number, count as number, optional increment as nullable number) as { Number } List.Numbers(1,15)=>{1,2,....15}
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 16:22:24
Цитата
Максим Зеленский написал: Хотя наконец-то коннекторы/библиотеки сделали обновляемыми через шлюз - есть надежда, что вскоре их сделают "дистрибутируемыми".
А можно или ссылку или поподробней а то что то не понятно о чем речь
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 16:13:16
Цитата
Юрий М написал: А как последние сообщения связаны с заявленной темой?
Извените если,что то нарушил. Просто сегодня в соседней ветке помог тем же самым способом ,через (_) вот и получается что он потратил в три раза больше времени ,так как тема есть и ()
Изменено: - 27.04.2018 16:20:09
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 15:58:11
Цитата
Максим Зеленский написал: первые самописные макросы на VBA я тоже с дрожью вспоминаю - жуть же, и столько времени занимали.
# pquery
This is a collection of functions written in the M language for use in Microsoft Excel's [Power Query plugin](.
## Introduction
Rather than manually adding the functions to different Excel workbooks, users can instead leave their files in any directory, and either batch import them into your workbook using Excel 2016 VBA (see my sample workbook [here](), or by dynamically loading them into Power Query using something like the `Load()` function (see `Load.m`). To use Load() you'll need to add it to every applicable workbook though. You can hard-code in the path to the folder where you put the functions from this repository, or set it in the specified cell in the above-mentioned sample workbook for use in that.
To manually add the Load query, click 'From Other Sources' in the Power Query ribbon tab, select 'Blank Query' (bottom option), open the Advanced Editor in the View tab, and paste in the below snippet (after adjusting file path). Click Done, name the query 'Load', and click 'Apply & Close' in the Home tab.
If you have your M queries in files, you may well prefer to edit them from a text editor like Notepad++. With Matt Mason's [language file]() for this you will get nice color coding too!
The main point here is that by separating universally useful functions from an individual workbook, you will feel encouraged to use more modular code, solving each common sub-problem only once, rather than remaining stuck in 'vanilla' M and resolving the same problems repeatedly.
Moreover, coding this way will also further facilitate sharing code with other Power Query users, allowing for a more collaborative environment.
Admittedly, Microsoft languages have rarely been known for encouraging open-source collaboration, and the Power Query community is currently small. But will that mean we cannot assemble a powerful code library like those of the JavaScript community?
## Usage
### to use M code in workbooks without having to import every query/function:
* [get]() and unzip this repo, or in case you'd like to contribute back, open a command prompt in your desired location (in Windows Explorer type `cmd` in the address bar) and run command `git clone . * copy [`LoadPath.example.m`]() as `LoadPath.m` and replace its entire content with the path where you put the query files; e.g. `"D:\pquery\"`. * manually import the `Load.m` and `LoadPath.m` functions into your workbook, keeping their names as `Load` and `LoadPath`. * now use the Load function to load queries from the folder you specified. i.e. if you write `Text_Between = Load("Text.Between"),`, it's going to give you the function located at `YOUR_PATH\Text.Between.m`.
### to allow sharing your workbook:
* use [my Power Query workbook]() (requires Excel 2016) to batch import the desired queries into your workbook. Chris Webb also posted the used [VBA code](), and did an introductory [blog post]() about it.
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 15:22:42
Цитата
Максим Зеленский написал: Эти функции могут динамически меняться?
Как часть более глобального кода , причешу поделюсь
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 14:30:41
Цитата
Максим Зеленский написал: Я уже забыл, когда кодил на VBA в боевом применении
А я убил два дня на то как решить задачу Создание дополнительного столбца с Применением функции где
Код
Text="Результат,Порода,JOINandExpandTableColumn",
Param=Text.Split(Text,","),
table as table,Param{1}-имя столбца к которому применяется функция
Результат: Вариант 1
Код
ColumnNames=Table.ColumnNames(table),
ColumnIndex=List.PositionOf(ColumnNames,Param{1}),
tablefn = Table.AddColumn(table, Param{1} & "_Lower", each Text.Lower(Record.FieldValues(_){ColumnIndex})),
Вариант 2
Код
tablefn = Table.AddColumn(table, Param{1} & "_Lower", each Text.Lower(Record.Field(_,Param{1}))),
в планах еще и функцию передать текстом
Код
fn=Expression.Evaluate("Text.Lower",#shared)
tablefn = Table.AddColumn(table, Param{1} & "_Lower", each Function.Invoke(fn,{Record.Field(_,Param{1})})),
Изменено: - 27.04.2018 17:30:22
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
27.04.2018 11:18:34
Цитата
Dyroff написал: Тем более Power Query, по которому так мало литературы и статей на Русском языке. Для тех людей, которые не могут читать статьи на английском языке (а таких десятки и сотни тысяч) это было бы настоящим кладом знаний. А так пойди, попробуй найди на форуме эти темы.
Полностью согласен! Тема достаточно новая и постоянно ,в отличии от того же VBA развивающаяся, и в русскоязычном сегменте Интернета пока не сильно расширена
Цитата
Юрий М написал: частенько вопрощаещему предлагается несколько вариантов решения: макросами, формулами, сводными, PQ
Раньше как было Excel-Формулы-VBA Сейчас Excel-Формулы-VBA-PQ
Цитата
Андрей VG написал: Вы готовы его писать? Тогда, думаю, можно с Николаем Павловым договориться, чтобы он размещал ваши статьи по Power Query в приёмах.
Я для себя создал приватную группу в Телеграм для сохранения ссылок и приемов по PQ,возможно выложу обзор ,если это будет интересно
Цитата
БМВ написал: Просто порой даже когда помогаешь, проще написать формулку или ответ, чем искать самому поиском и тыркать носом, мол вот же.
Да.что есть,то есть , для себя вывел формулу "Правильно заданый вопрос ,уже половина ответа" Но в новой теме иногда не знаешь КАК ПРАВИЛЬНО ЭТОТ ВОПРОС ЗАДАТЬ
"Правильно заданный вопрос,половина ответа!"
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума
Пользователь
Сообщений: Регистрация: 19.11.2014
26.04.2018 16:43:07
Как вы смотрите на то ,что бы выделить вопросы по Power Query в отдельную ветку форума. А так же своего рода FAQ по основным вопросам.
Изменено: - 26.04.2018 16:46:43
"Правильно заданный вопрос,половина ответа!"
Power Query Как зависит производительность при Table.Buffer, List.Buffer
Пользователь
Сообщений: Регистрация: 19.11.2014
05.04.2018 15:50:54
Применение в запросе List.Buffer или Table.Buffer освобождает один из Microsoft Mashup Evaluation Container? Просто тоже не понятно почему именно 4 шт Microsoft Mashup Evaluation Container
"Правильно заданный вопрос,половина ответа!"
Power Query Как зависит производительность при Table.Buffer, List.Buffer
Пользователь
Сообщений: Регистрация: 19.11.2014
05.04.2018 13:33:54
Цитата
PooHkrd написал: Обратите внимание на процессы в диспетчере задач во время выполнения скриптов
1.List.Buffer или Table.Buffer освобождает один из Microsoft Mashup Evaluation Container? 2.Microsoft Mashup Evaluation Container это по сути соединение с кешированым файлом? 3.Как то можно обнулить буфер как в vba tablebufer=Table.Buffer (table) set tablebufer=nothing
"Правильно заданный вопрос,половина ответа!"
Power Query Как зависит производительность при Table.Buffer, List.Buffer
Пользователь
Сообщений: Регистрация: 19.11.2014
05.04.2018 12:18:05
На последнем шаге В буфер НО 1. таблица остается в памяти в рамках расчета только одного запроса? или DaysToForecast в другом запросе -это уже обращение к буферу?
Изменено: - 05.04.2018 13:35:28
"Правильно заданный вопрос,половина ответа!"
Power Query Как зависит производительность при Table.Buffer, List.Buffer
Пользователь
Сообщений: Регистрация: 19.11.2014
05.04.2018 11:22:08
Тоесть на больших таблицах при ограничениях на память ОЗУ могут быть проблемы?
"Правильно заданный вопрос,половина ответа!"
Power Query Как зависит производительность при Table.Buffer, List.Buffer
Пользователь
Сообщений: Регистрация: 19.11.2014
05.04.2018 10:25:26
Источник но понимания зачем нет Например в пишет Буферизирует таблицу в памяти, изолируя ее от внешних изменений во время оценки Это как?
"Правильно заданный вопрос,половина ответа!"
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
Пользователь
Сообщений: Регистрация: 19.11.2014
22.09.2017 08:55:22
Для отправки текста в кирилице
Код
Function RussianStringToURLEncode_New(ByVal txt As String) As String
For i = 1 To Len(txt)
l = Mid(txt, i, 1)
Select Case AscW(l)
Case Is > 4095: t = "%" & Hex(AscW(l) \ 64 \ 64 + 224) & "%" & Hex(AscW(l) \ 64) & "%" & Hex(8 * 16 + AscW(l) Mod 64)
Case Is > 127: t = "%" & Hex(AscW(l) \ 64 + 192) & "%" & Hex(8 * 16 + AscW(l) Mod 64)
Case 32: t = "%20"
Case Else: t = l
End Select
RussianStringToURLEncode_New = RussianStringToURLEncode_New & t
Next
End Function
Sub TextUTF8Send()
Call Send_to_Telegram_Bot_example(RussianStringToURLEncode_New(ActiveCell.Value))
End Sub
"Правильно заданный вопрос,половина ответа!"
Трeтичная система в двухмерный масив макросом
Пользователь
Сообщений: Регистрация: 19.11.2014
20.03.2017 19:21:29
Мы знаем что бит принимает значение 0 или 1 байт это 8 символов соответственно 00000000 00000010 00000011 00000100 но это пример если бит принимал бы значение от 1 до 3 а байт n-символовов как заполнить двухмерный масив в моем случае ListObjects("matrix") Для n=3 имеем 3^3 строк
"Правильно заданный вопрос,половина ответа!"
сводная таблица лишнее поле с именем "Данные"
Пользователь
Сообщений: Регистрация: 19.11.2014
19.11.2014 17:34:15
Спасибо за ответ! Тоесть если в поле данных одно поле то поле данные будет отсутствовать и еще зачем оно вообще нужно
"Правильно заданный вопрос,половина ответа!"
сводная таблица лишнее поле с именем "Данные"
Пользователь
Сообщений: Регистрация: 19.11.2014
19.11.2014 16:35:41
Строю сводную таблицу В списке полей 25 шт а если смотреть свойство Set pt = ActiveCell.PivotTable pt.PivotFields.count =26 pt.PivotFields(pt.PivotFields.count).name- "Данные" Обьясните пожалуйста откуда берется это лишнее поле