Алексей Вячеславович написал: Почему оно не используется там же при описании "клиента" c2
Алексей Вячеславович, потому что в первом случае идёт декларация (объявление переменной) с присваиванием, а во втором - сначала декларация, а затем присваивание, результат аналогичный. Разве нельзя было скопировать сюда код для обсуждения, и каким образом эти вопросы относятся к теме ))
Код
Sub TestClient()
Dim c1 As New Client
c1.Name = "Bond"
c1.Account = 300000
Dim c2 As Client
Set c2 = New Client
c2.Name = "Pooh"
c2.Account = 200000
Debug.Print c1.Name & vbTab & c1.Account
Debug.Print c2.Name & vbTab & c2.Account
End Sub
... в тексте рядом с листингом кстати всё разжёвано
Алексей Вячеславович, если приведённый по ссылке текст Вам знаком и осмыслен, то тогда непонятно откуда взялся ваш вопрос из начала темы. Возможно посмотрю позже, на это требуется больше свободного времени, чем я планировал сейчас потратить )) Но лучше если ваши вопросы будут соответствовать теме.
Вроде и вопрос хороший, а непонятно что конкретно не получается, не приложено никакого файла-примера. Если совсем не знаете как подступиться к классам, нужны какие-то наброски, то ведь полным-полно информации в сети, вот пример
Ну это для ветки "Работа", скорее всего задача. Во всяком случае такая же там была мною выполнена. У вас ведь там наверняка ещё разные нормативы для девочек и мальчиков.
Этот код на языке M (Power Query) предназначен для обработки табличных данных, особенно когда есть пропущенные значения в столбце "Статья". Он заполняет эти пропуски на основе группировки по столбцу "Номер проводки". Давайте разберем его по шагам.
🧩 Шаг 1: Определение пользовательской функции f m f = (x) => Table.FillUp(Table.FillDown(x, {"Статья"}), {"Статья"}), Table.FillDown(x, {"Статья"}) : Эта функция заполняет пустые ячейки в столбце "Статья" значениями из ячейки выше 📌. Она проходит сверху вниз по таблице.
Table.FillUp(..., {"Статья"}) : Эта функция выполняет обратную операцию — заполняет пустые ячейки значениями снизу вверх 📌. Комбинация FillDown и FillUp гарантирует, что все пропуски в группе будут заполнены, даже если первые или последние ячейки пусты.
Функция f принимает таблицу x, применяет к ней обе операции заполнения и возвращает результат.
🧩 Шаг 2: Получение исходных данных m from = Excel.CurrentWorkbook(){[Name="Исходная"]}[Content], Эта строка загружает данные из именованного диапазона или таблицы Excel с именем "Исходная" 📌. Результатом является таблица, которая сохраняется в переменной from.
🧩 Шаг 3: Группировка и обработка данных m to = Table.Combine( Table.Group( from, "Номер проводки", {"tmp", f} )[tmp] ) Table.Group(from, "Номер проводки", {"tmp", f}) :
Эта функция группирует строки исходной таблицы from по столбцу "Номер проводки" 📌.
Для каждой группы вызывается пользовательская функция f, которая заполняет пропуски в столбце "Статья" как сверху вниз, так и снизу вверх.
Результат обработки каждой группы сохраняется в новом столбце с именем tmp.
...[tmp] : После группировки и обработки из результирующей таблицы извлекается столбец tmp, который содержит обработанные группы в виде отдельных таблиц.
Table.Combine(...) : Функция объединяет все эти обработанные группы (таблицы) обратно в одну общую таблицу 📌.
🧩 Шаг 4: Возврат результата m in to Ключевое слово in указывает на возвращаемое значение всего выражения — переменной to, которая содержит финальную обработанную таблицу.
💡 Назначение кода Основная цель этого кода — заполнить пропущенные значения в столбце "Статья" на основе группировки по столбцу "Номер проводки". Это полезно, когда:
Данные имеют иерархическую структуру.
Значения "Статья" повторяются для нескольких строк с одинаковым "Номером проводки", но указаны только один раз (например, в первой или последней строке группы).
Комбинация FillDown и FillUp ensures that all empty cells within a group are filled, even if the first or last cells in the group are missing.
⚠️ Важные замечания Порядок строк : Эффективность FillDown и FillUp зависит от порядка строк. Если данные неправильно отсортированы, результат может быть неожиданным.
Группировка : Код предполагает, что все строки с одинаковым "Номером проводки" logically belong together and should share the same "Статья" value.
Производительность : Для больших datasets операции группировки и заполнения могут быть resource-intensive.
💎 Пример работы Допустим, исходная таблица выглядит так:
Номер проводки Статья 1 Доход 1 null 2 null 2 Расход 2 null После обработки кодом таблица будет преобразована следующим образом:
Номер проводки Статья 1 Доход 1 Доход ← Заполнено FillDown 2 Расход ← Заполнено FillUp 2 Расход 2 Расход ← Заполнено FillDown Таким образом, все пустые значения в столбце "Статья" заполняются на основе данных в пределах группы, определенной "Номером проводки".
вот ничего непонятно, и пример недоходчивый сравнение каких товаров - в соседних строках, похожих по названию, одного со всеми, всех между собой, только двух за один раз или какой-то группы сразу с другой группой... ))