Здравствуйте. Стабильно на работе приходится проделывать следующую операцию с экселевской таблицей: после выгрузки в таблице удаляются лишние столбцы, остаются только столбцы с номер и суммой договора. В столбце с суммами, бывают обычные ячейки, с числом, 0 или пустые и объединенные ячейки, в которых так же может быть число, 0 или пустота. И объединенные ячейки постоянно приходится руками разъединять и проставлять туда число, 0 или оставлять их пустыми соответственно. Вопрос в том, можно ли сделать эту операцию с помощью какого-либо макроса? Пример таблицы во вложении.
можно ли сделать эту операцию с помощью какого-либо макроса?
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
Dim n As Integer
iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To iLastRow
If Cells(i, 2).MergeCells Then
n = Cells(i, 2).MergeArea.Count
Range(Cells(i, 2), Cells(i + n - 1, 2)).UnMerge
Cells(i, 2).Resize(n) = Cells(i, 2)
End If
Next
End Sub
Kuzmich, спасибо, очень выручили И ещё вопрос, есть ли возможность немного усовершенствовать макрос и сделать его так, чтобы он работал в конкретном выделенном столбце или, ещё лучше, диапазоне ячеек?
чтобы он работал в конкретном выделенном столбце или, ещё лучше, диапазоне ячеек?
Так макрос и так работает с конкретным диапазоном ячеек от В2 и до последней ячейки в столбце В. Cells(i, 2) - цифра 2 указывает на столбец В, если нужен другой столбец, то поменяйте цифру. Или замените цикл For i = 2 To iLastRow на цикл по выделенному диапазону Selection. Удачи!