Свойства в один столбец - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Имеется excel файл напечатанного ниже формата:

Строка "1"

- Заголовки информации о товаре; Начиная со строки "2", построчно идут разные товары;

Столбцы от "A" до "С"

- uid, наименование, категория - товара; // эти значения должны остаться не тронутыми; Начиная

от столбца "D"

- идут свойства товара, в каждом новом столбце, новое свойство; - Для разных товаров могут быть заполнены значения свойства товара либо значения свойства товара будут отсутствовать. Напишите пожалуйста макрос который создаст новую страницу "Необходимый результат", на эту страницу скопирует скопирует

Столбцы от "A" до "С"

и рядом в столбце "D" создаст столбец "для всех свойств" - то бишь это необходимо для того чтобы рядом с товаров все свойства товара и его значения размещались в одной ячейке столбца "D" и название + значения свойства разделялись символом двоеточие ":", а сами свойства разделялись точкой с запятой ";". Пример файла исходник прикладываю в файле во вложении. В оригинале строк тысячи, а столбцов сотни (редактировать придётся часто).

Решение задачи: «Свойства в один столбец»

textual
Листинг программы
Sub pr()
    Dim i&, j&
    a = Cells(1, 1).CurrentRegion.Value
    For i = 2 To UBound(a)
        For j = 4 To 6
            If Not IsEmpty(a(i, j)) Then a(i, j) = a(1, j) & ":" & a(i, j)
            If j > 4 Then a(i, 4) = a(i, 4) & IIf(IsEmpty(a(i, 4)) Or IsEmpty(a(i, j)), "", ";") & IIf(IsEmpty(a(i, j)), "", a(i, j))
        Next
    Next
    a(1, 4) = "Свойства"
    Sheets.Add
    Cells(1, 1).Resize(UBound(a), 4) = a
End Sub

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы