Думаю что можно Вашу логику использовать и просто всегда перед выполнением макроса выполнять макрос который удалит крайний столбец, а потом уже он появится при выполнении макроса конкотинации, может это даже оптимальнее когда не знаешь где буте фиксированная граница данных. Надо думать.
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
11.06.2025 18:19:05
Работает!
Это конечно сложно пока для меня, спасибо! А если нужно соединить колонки по имени, которые идут не по очереди? Есть какая то логика типа: Объявляем объект "Умная таблица" Указываем Range колонок с которыми хотим совершить действие Показываем что хотим просмотреть в них все от первой строки (без заголовков), до последней и далее либо перенести в коллекцию и потом последовательно достать соединяя, либо сразу указать на объединение ячеек каждого номера строк |
|
|
Объединение значений нескольких столбцов в один столбец с помощью макроса
11.06.2025 17:26:32
Дочитался до того что нужно создать объект и обратиться к его методам, но дальше не понимаю как указать что нужно соединить колонки умной таблицы
|
|||
|
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
11.06.2025 15:17:30
Я извиняюсь.
Я хотел сделать конкатинацию нескольких столбцов умной таблицы и перепутал метод! Мне по сути нужно объединить несколько столбцов умной таблицы. ![]()
Изменено: |
|
|
Объединение значений нескольких столбцов в один столбец с помощью макроса
11.06.2025 13:48:11
Здравствуйте. Подскажите пожалуйста в чем ошибка?
|
|||
|
Удалить текст до первой запятой с конца, Подбор формулы для обработки текста
08.11.2023 20:05:13
Можете через регулярки сделать
Убрать все после первой запятой; RegExpReplace (Ячейка с Вашим текстом; ",.*"; "") Результат -> Результат -> Lobnya g Убрать все после крайней правой запятой; RegExpExtract(Ячейка с Вашим текстом;"(.*)\s(.*),\s") Результат -> Lobnya g, Moskovskaya obl, Московская область, Лобня, улица Некрасова,
Изменено: |
|
|
Глобальные переменные (Модификаторы доступа)
08.11.2023 19:24:59
Добрый вечер.
У меня есть процедуры для открытия книг по пути Option Explicit Dim iPath As String Private Sub SELECT_DIR_NSI() iPath = ActiveWorkbook.Path & "\REQ_NSI" Set Wb = Workbooks.Open(Filename:=iPath) End Sub Sub SELECT_DIR_PRICE() iPath = ActiveWorkbook.Path & "\DIR_PRICE" Set Wb = Workbooks.Open(Filename:=iPath) End Sub Sub SELECT_DIR_ADDRESS() iPath = ActiveWorkbook.Path & "\DIR_ADDRESS" Set Wb = Workbooks.Open(Filename:=iPath) End Sub 1. Можно ли как-нибудь вынести объектную переменную отдельно для оптимизации кода? 2. Как сделать iPath = ActiveWorkbook.Path доступную для использования во всех открытых книгах? Я немного разбираюсь в JAVA и там это решается модификаторами доступа, а в VBA не понимаю как это предусмотрено. |
|
|
Автоинкремент
Автоинкремент
17.09.2023 17:16:19
Добрый день.
Подскажите как исправить дебаг. Я использую классический макрос для автоинкремента. При активации ячейки в колонке 2, происходит проверка на пусто и если ячейка слева пустая, то ищем максимальное значение, далее к нему делаем +1. Проблема возникает если в колонке 2, я протягиваю несколько значений. Дебажит. На ум приходит обернуть это в цикл, но что взять за одну итерацию, не могу сообразить. <Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then If Target.Offset(0, -1).Value = "" Then Target.Offset(0, -1).Value = Application.WorksheetFunction.Max(Columns("A")) + 1 End If End If End Sub>
Изменено: |
|
|
Конструктор объектов, Создать объект в классе
11.12.2022 23:16:43
Добрый вечер. У меня есть простенькая объектная модель на JAVA. Суть ее в том что бы через конструктор присваивать параметры объектам.
Как на VBA реализовать такой же аналог? По каким ключевым словам искать на форуме аналогичные решения? public class ПАРАМЕТРЫ { String Вид_линовки; String Вид_товара; String Вид_фиксирующего_элемента; float Длина; String Количество_листов; String Материал_обложки; int Плотность_бумаги = 180; } class Канцтовары {public static void main(String[] args) { ПАРАМЕТРЫ Блокнот = new ПАРАМЕТРЫ(); - // Конструктор для нового объекта (Блокнот) типа данных Параметры использует; Блокнот.Вид_линовки = "Без линовки, Клетка, Линейка"; Блокнот.Вид_товара = "Блокнот"; Блокнот.Длина = 210; ПАРАМЕТРЫ Тетрадь = new ПАРАМЕТРЫ(); - // Конструктор для нового объекта (Тетрадь) типа данных Параметры Тетрадь.Вид_линовки = "Без линовки, Клетка, Линейка, Для свободной записи"; Тетрадь.Вид_товара = "Тетрадь"; Тетрадь.Количество_листов = ">=10, >=20, >=30"; System.out.println(Блокнот.Вид_линовки); System.out.println(Тетрадь.Вид_линовки); System.out.println(Блокнот.Плотность_бумаги); } } |
|
|
Использование Target.Column
Использование Target.Column
Использование Target.Column
29.10.2022 23:21:28
Добрый день.
В инете нашел макрос который при наступлении события проставляет дату этого события в соседнюю ячейку. <For Each cell In Target If Target.Column = 17 Then With cell.Offset(0, 1) .Value = Now .EntireColumn.AutoFit End With End If Next cell> мне необходимо вместо колонки 17, подставить название столбца умной таблицы. попытался так, но ничего не работает <a = Sheets("SH_DIR_CATALOG").ListObjects("DIR_CATALOG").ListColumns("PRICE").Range.Value If Target.Column = a Then> как такие вещи правильно писать?
Изменено: |
|
|
Запуск макроса только в активной книге
11.06.2022 21:19:03
Вот решение. Подскажите как заметить постоянный диапазон, на Selection?
Sub UNIC() Dim z, i& z = Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row).Value With CreateObject("scripting.dictionary"): .CompareMode = 1 For i = 1 To UBound(z) If Not .exists(z(i, 1)) Then .Item(z(i, 1)) = 0: .Item(z(i, 1)) = .Count Next For i = 1 To UBound(z): Range("A" & i + 1) = .Item(z(i, 1)): Next End With End Sub
Изменено: |
|
|
Справочник по элементам RibbonX
Удаление множества листов макросом
Удаление множества листов макросом
18.08.2021 22:49:24
Добрый день.
У меня в книге реализовано удаление листов по (CODENAME)
1. Если лист по какой то причине не находится в книге или изменен Codename, то марос останавливается. Как это избежать? 2. Можно упростить код что бы не писать для каждого листа .Delete? Например все листы загнать в переменную и один раз прописать для нее удаление. Заранее спасибо!
Изменено: |
|||
|
Номер для каждого уникального значения
24.10.2020 17:38:26
Вот только я полный чайник в PQ и в языке "М" - Не прошу тратить время на мое обучение, но если есть ссылка на ресур подобных уроков, то скиньте Please. - Можноли через PQ разносить данные по формам? Например в накладные или иные шаблоны?
Изменено: |
|||
|
Номер для каждого уникального значения
Номер для каждого уникального значения
24.10.2020 14:56:31
Буду пытаться через свод выставлять уникальные значения, а далее через индекспоискпоз проставлять напротив каждого товара. |
|||
|
Номер для каждого уникального значения
24.10.2020 12:53:38
Благодарю Вас. Нумерует все строки одним номером. (1)
Я бы мог решить через свод, но у меня данные для закупочных процедур подтягиваются в форму по ИНДЕКС ПОИСКПОЗ и для этого нужен уникальный ID на одиноковый товар. Свод не совсем подходит для текстовых форматов внутри, поэтому пытаюсь создать свой свод через уникальные ID. |
|
|
Номер для каждого уникального значения
24.10.2020 12:42:35
Светлый, приветствую Вас.
Мощное решение формулой, но при сортировке не работает. ![]()
Не нахожу. Думаю что решение через формулу больше отвлекает людей чем решение через VBA. Помимо прочего, эти люди (спасибо им огромное) по-моему не просили защиты от Вас. Если нет вариантов или желания решить задачу, то просто пройдите мимо. |
|||
|
Номер для каждого уникального значения
Номер для каждого уникального значения
24.10.2020 12:30:56
Спасибо, но мне нужно что бы диапазо был с возможностью сортировки.
Массив около 10.000 строк и в дальнейшем из него получается спецификация из уникальных названий (по аналогии со сводной таблицей) Должна быть возможность динамичного изменения при постоянной смене названий товаров и возможность сортировки. Может есть VBA решение? ![]() |
|
|
Номер для каждого уникального значения
Перенос данных из одного листа в другой с последующим объединением, Перенос и копирование
Перенос данных из одного листа в другой с последующим объединением, Перенос и копирование
15.03.2020 23:18:17
Добрый день.
Подскажите решение для переноса данных из одного листа на другой в объединенные ячейки. Файл с данными во вложении. Необходимо что бы данные из листа ("ЛИСТ1") попали на лист ("ЛИСТ2"). При этом часть данных из ("ЛИСТ1") (выделил желтым) попала в ("ЛИСТ2) в диапазон (выделил желтым) часть данных из ("ЛИСТ1") (выделил синим) попала в ("ЛИСТ2) в объединенную ячейку (выделил синим) часть данных из ("ЛИСТ1") (выделил розовым) попала в ("ЛИСТ2) в объединенную ячейку (выделил розовым) так же перенос должен быть ограничен данными на ("лист1") |
|
|