Страницы: 1
RSS
Написание в VBA кода для переноса части и редактирования части содержимого одной ячейки в другие ячейки, Написание в VBA кода для переноса части и редактирования части содержимого одной ячейки в другие ячейки
 
Здравствуйте! Есть документ с отчетом по топливным картам клиентов. Отчет представлен в разрезе топливных карт клиентов, как представлено на 1 листе в примере. То есть сначала идет номер карты, снизу дни и количество купленного топлива, когда карта использовалась. Причем количество карт остается постоянным, но достаточно велико (около 200), а количество дней использования в каждом отчете разное и по каждой карте разное. Задача состоит в том, что нужно копировать номера топливных карт в первый столбец и убрать в номерах карт все пробелы, так как это представлено на 2 листе. Соответственно делать это в ручную с учетом большого объема карт очень не быстро. Можно ли написать код в VBA для автоматического форматирования данного отчета?
 
Добрый день.
Вы вероятно не заметили что испортили все номера карт? Нужно как текст их держать в ячейке.
Как вариант - от А2 протянуть вниз
Код
=ЕСЛИ(И(ЕЧИСЛО(B1);ЕЧИСЛО(B2));A1;ПОДСТАВИТЬ(ПСТР(B1;8;22);" ";""))

P.S. понимаю что просили код - но формула проще. Как вариант - записать её написание рекордером в макрос, добавив в конце замену формул на значения.
Изменено: Hugo - 16.04.2019 20:35:00
 
Вот такой вариант могу предложить.
Код
Sub Формат()

    Dim Строка As Long
    Dim ПоследняяСтрока As Long
    
    ПоследняяСтрока = Cells.SpecialCells(xlCellTypeLastCell).Row
    Строка = 1
    For Строка = 1 To ПоследняяСтрока
        If Cells(Строка, 2) <> "" Then
            If Cells(Строка, 2) Like "Карта*" Then
                Cells(Строка + 1, 1).FormulaR1C1 = "=SUBSTITUTE(MID(R[-1]C[1],8,22),"" "","""")"
                Cells(Строка + 1, 1) = Cells(Строка + 1, 1)
            Else
                If Cells(Строка + 1, 2) <> "" Then Cells(Строка + 1, 1) = Cells(Строка, 1)
            End If
        End If
    Next

End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Страницы: 1
Наверх