5 / 5 / 1
Регистрация: 27.07.2015
Сообщений: 88
1

Разбить ячейки и удалить образовавшиеся пустые ячейки

27.07.2015, 17:02. Показов 1322. Ответов 6
Метки нет (Все метки)

И снова я.
В приложенном файле имеем в столбцах "Дата" и "Номер" содержимое. Нужно перебрать 3 строку и в каждом столбце с названием "Дата" и "Номер" (в примере - один столбец "Дата" и один - "Номер") разбить все объединённые ячейки и удалить все пустые ячейки, образовавшиеся после разбиения.
Собственно проблема в том, что не пойму, как сделать цикл по строке. Как ни пытаюсь - результат один: дебаггер.
Вот, что у меня получилось пока:
Visual Basic
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
Sub Макрос11()
'
' Макрос11 Макрос
'
 
'
Dim i&, j&
For j = "A" To "Z"
If Range(j & 3).Value = "Дата" Then
Range("j4:j200").Select
    With Selection
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    For i = 4 To 200 (взял с запасом (комментарий добавил только сюда, в ВБА - без него))
    If Range(j & i).Value = "" Then
    Range(j & i).Select
    Selection.Delete Shift:=xlUp
    End If
    Next i
End If
Next j
End Sub
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2015, 17:02
Ответы с готовыми решениями:

Удалить ячейки по условию (меньше 2 и пустые)
Как это водится : - свалилось на мою голову необходимость поработать с экселем и стандартными...

Нужно удалить пустые ячейки из выбронного столбца
Пожалуйста, помогите. Я только учись писать макросы. Вот написала один, а он некоректно работает....

Удалить пустые строки при условии пустой ячейки
нужно записать макрос, который будет удалять всю строку при условии, что в ячейке В или С пусто, и...

Удалить значение ячейки А1 из значений ячейки В1
Добрый день. Прошу помощи. Ячейка А1 содержит текст 100, 103, 105 Ячейка В1 содержит текст...

6
15038 / 6362 / 1726
Регистрация: 24.09.2011
Сообщений: 9,971
27.07.2015, 17:15 2
Цитата Сообщение от Капитан Экселя Посмотреть сообщение
В приложенном файле
???
0
5 / 5 / 1
Регистрация: 27.07.2015
Сообщений: 88
27.07.2015, 17:17  [ТС] 3
Цитата Сообщение от Казанский Посмотреть сообщение
???
Упс забыл файл. Вот он
Вложения
Тип файла: xlsx Лишние ячейки.xlsx (10.6 Кб, 8 просмотров)
0
15038 / 6362 / 1726
Регистрация: 24.09.2011
Сообщений: 9,971
27.07.2015, 17:36 4
Тут макрос не нужен Выделить все, Ctrl-1 - выравнивание - очистить галку "объединение ячеек". F5 - выделить - пустые ячейки. Правый клик на любой выделенной - удалить - со сдвигом вверх.
Можете записать эти действия в макрос.
1
5 / 5 / 1
Регистрация: 27.07.2015
Сообщений: 88
27.07.2015, 17:38  [ТС] 5
Казанский,
Так тут два столбца. А у меня могут они повторяться на одном листе раз 10. Замучаешься выделять. Сделайте макрос, пожалуйста.
Проблема в том, что надо идти по строке 3 и если в ячейке стоит "Дата" или "Номер" - делать указанную Вами операцию (тут). Не могу сообразить, как это сделать.
0
15038 / 6362 / 1726
Регистрация: 24.09.2011
Сообщений: 9,971
27.07.2015, 18:08 6
Цитата Сообщение от Капитан Экселя Посмотреть сообщение
Замучаешься выделять
Трудно нажать Ctrl+A или клетку на пересечении заголовков строк и столбцов?
Или Вы хотите сказать, что в таблице могут быть другие объединенные ячейки и пустые ячейки, которые удалять не надо?
Вот, пробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Cap()
Dim c As Range, r As Range, n&
With ActiveSheet.UsedRange
  n = .Rows.Count - .Row + 1
End With
For Each c In Range("A3", Cells(3, Columns.Count).End(xlToLeft))
  If c = "Дата" Or c = "Номер" Then
    Set c = c.Offset(1).Resize(n)
    If Not r Is Nothing Then Set r = Union(r, c) Else Set r = c
  End If
Next
If Not r Is Nothing Then
  r.MergeCells = False
  r.SpecialCells(xlCellTypeBlanks).Delete xlShiftUp
End If
End Sub
1
5 / 5 / 1
Регистрация: 27.07.2015
Сообщений: 88
28.07.2015, 11:22  [ТС] 7
Цитата Сообщение от Казанский Посмотреть сообщение
Трудно нажать Ctrl+A
Не понимаю Вас. Ctrl+A выделит вообще всё. Ну сниму я объединение. А как я потом пустые ячейки убью удалю? У меня же много столбцов, идущих НЕ ПОДРЯД, но с одинаковыми названиями "Дата" и "Номер". Если выбрать их общим диапазоном - там будет КУУУУУЧА пустых ячеек - на время выполнения их удаления можно будет пойти обедать.

Добавлено через 1 минуту
Цитата Сообщение от Казанский Посмотреть сообщение
"Г„Г*ГІГ*" Or c = "Íîìåð
А что эта строка значит? Почему тут кракозябры?

Добавлено через 10 минут
Да кракозябры ошибочны. Поменял их на "Номер" И "Дата" - и всё стало норм.
Код отлично работает и быстрее моего. Большущее спасибо.
К стаит, другие объединённые и пустые ячейки, которые удалять не надо, - в таблице возможны.

Добавлено через 16 часов 48 минут
Казанский,
Не понимаю Вас. Ctrl+A выделит вообще всё. Ну сниму я объединение. А как я потом пустые ячейки убью удалю? У меня же много столбцов, идущих НЕ ПОДРЯД, но с одинаковыми названиями "Дата" и "Номер". Если выбрать их общим диапазоном - там будет КУУУУУЧА пустых ячеек - на время выполнения их удаления можно будет пойти обедать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2015, 11:22

Заполнить пустые ячейки
Доброго времени суток! Подскажите, пожалуйста: Как заполнить пустые ячейки на листе (идеально...

проверка на пустые ячейки
Доброе время суток ребята! With Sheets("Z28560") lastRow = .Cells(.Rows.Count,...

И снова пустые ячейки!
Доброе время суток лучшие программисты форума! все таки нужна ваша помощь! помогите добиться с...

Проверка на пустые ячейки в цикле
Здравствуйте! Нужно пройтись по столбцу B1:B163 и найти пустые ячейки. Если ячейка пустая то нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.