Страницы: 1
RSS
автоматизация обработки прайса
 
Здравствуйте, на собеседовании мне открыли прайс и спросили: "Как привести этот прайс к такому виду(в примере) и автоматизировать этот процесс с помощью макросов?".
Обращаюсь к знатокам:
1. Что тут можно сделать без VBA? только с помощью формул, стандартных инструментов и записи макросов?
2. Можно ли тут что-то сделать с помощью RegExp? Опять таки желательно без VBA, а с UDF.
В прошлом с текстами работать не доводилось, только чистка по наличию, ассортименту, скидки\наценки, так что будет очень круто, если будут примеры для анализа.

PS  Можно и VBA, разбираться все равно надо.

Заранее спасибо!
 
Цитата
без VBA, а с UDF
а это как?
звучит примерно как «без хлеба, но бутерброд»

Цитата
Что тут можно сделать без VBA?
многое можно
например, рамочки у ячеек нарисовать
или вручную искать и копировать данные
 
Рамочки мне как помогут?

Цитата
Игорь написал: звучит примерно как «без хлеба, но бутерброд»
Да, но эта UDF не требует никаких знаний по VBA - подключил и используй
 
Цитата
VectorXXX написал:
Да, но эта UDF не требует никаких знаний по VBA - подключил и используй
Использование чужого макроса тоже не требует знаний VBA )
 
В данном случае мне важно понять как работать с такими прайсами
 
Цитата
Можно и VBA, разбираться все равно надо
Разбирайтесь, посмотрите такой вариант макроса в модуле Листа1
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub Prais()
Dim i As Long
Dim iLastRow As Long
Dim j As Integer
Dim ArrColor
  iLastRow = Cells(Rows.Count, 3).End(xlUp).Row
  Columns(1).Insert
  For i = iLastRow To 8 Step -1
    If Cells(i, 2).MergeArea.Count = 6 Then
      Cells(i + 1, 1) = Cells(i, 2)
      Rows(i).Delete
    End If
  Next
    iLastRow = Cells(Rows.Count, 4).End(xlUp).Row
  Range("B8:G" & iLastRow).UnMerge
  With Range("A8:C" & iLastRow)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
  End With
  For i = iLastRow To 8 Step -1
    ArrColor = Split(Cells(i, 3), "\")
      Cells(i, 3) = ArrColor(0)
    For j = 1 To UBound(ArrColor)
      Rows(i + j).Insert
      Cells(i + j, 3) = ArrColor(j)
    Next
  Next
  iLastRow = Cells(Rows.Count, 3).End(xlUp).Row
  With Range("A8:G" & iLastRow)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
  End With
End Sub
Удачи!
 
Kuzmich, спасибо, буду разбираться
Страницы: 1
Читают тему
Наверх
Loading...