Думаю что можно Вашу логику использовать и просто всегда перед выполнением макроса выполнять макрос который удалит крайний столбец, а потом уже он появится при выполнении макроса конкотинации, может это даже оптимальнее когда не знаешь где буте фиксированная граница данных. Надо думать.
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
|
11.06.2025 18:19:05
Работает!
Это конечно сложно пока для меня, спасибо! А если нужно соединить колонки по имени, которые идут не по очереди? Есть какая то логика типа: Объявляем объект "Умная таблица" Указываем Range колонок с которыми хотим совершить действие Показываем что хотим просмотреть в них все от первой строки (без заголовков), до последней и далее либо перенести в коллекцию и потом последовательно достать соединяя, либо сразу указать на объединение ячеек каждого номера строк |
|
|
|
|
Объединение значений нескольких столбцов в один столбец с помощью макроса
|
11.06.2025 17:26:32
Дочитался до того что нужно создать объект и обратиться к его методам, но дальше не понимаю как указать что нужно соединить колонки умной таблицы
|
|||
|
|
|
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
Объединение значений нескольких столбцов в один столбец с помощью макроса
|
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 20:33:21
|
|
|
|
|
Глобальные переменные (Модификаторы доступа)
|
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>
Изменено: - 17.09.2023 17:21:19
|
|
|
|
|
Конструктор объектов, Создать объект в классе
|
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> как такие вещи правильно писать?
Изменено: - 29.10.2022 23:40:55
|
|
|
|
|
Запуск макроса только в активной книге
|
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
Изменено: - 11.06.2022 23:58:47
(Добавил вопрос)
|
|
|
|
|
Справочник по элементам RibbonX
Удаление множества листов макросом
Удаление множества листов макросом
|
18.08.2021 22:49:24
Добрый день.
У меня в книге реализовано удаление листов по (CODENAME)
1. Если лист по какой то причине не находится в книге или изменен Codename, то марос останавливается. Как это избежать? 2. Можно упростить код что бы не писать для каждого листа .Delete? Например все листы загнать в переменную и один раз прописать для нее удаление. Заранее спасибо!
Изменено: - 18.08.2021 23:05:07
|
|||
|
|
|
Номер для каждого уникального значения
|
24.10.2020 17:38:26
Вот только я полный чайник в PQ и в языке "М" - Не прошу тратить время на мое обучение, но если есть ссылка на ресур подобных уроков, то скиньте Please. - Можноли через PQ разносить данные по формам? Например в накладные или иные шаблоны?
Изменено: - 24.10.2020 17:38:51
|
|||
|
|
|
Номер для каждого уникального значения
Номер для каждого уникального значения
|
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") |
|
|
|
|