Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2012, 00:59   #1
iKarma
Кипучий чайник
Пользователь
 
Регистрация: 17.10.2011
Сообщений: 55
По умолчанию Удаление пустых ячеек в MS Excel

Всем доброго времени суток =) Как сделать удаление пустых ячеек в MS Excel?
Я сделал, но у меня удаляются полностью строки, а мне надо чтобы только определённые пустые ячейки.
Код:
'удаляем пустые строки
For i = 1 to FinalRow 
  If (objSheetNewData.Range("B" & i).Value = "") And (objSheetNewData.Range("C" & i).Value = "") Then
    objSheetNewData.Range("B" & i).EntireRow.Delete
    'i = i - 1
  End If
Next
iKarma вне форума Ответить с цитированием
Старый 04.05.2012, 01:23   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
objSheetNewData.Range("B" & i).resize(,2).delete Shift:=xlToLeft 'со сдвигом влево

objSheetNewData.Range("B" & i).resize(,2).delete Shift:=xlUp 'со сдвигом вверх
И проходите цикл назад, чтобы не задумываться о том, что строки меняют номер после удаления:
Код:
For i = FinalRow to 1 step -1
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 04.05.2012, 10:17   #3
iKarma
Кипучий чайник
Пользователь
 
Регистрация: 17.10.2011
Сообщений: 55
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Код:
objSheetNewData.Range("B" & i).resize(,2).delete Shift:=xlToLeft 'со сдвигом влево

objSheetNewData.Range("B" & i).resize(,2).delete Shift:=xlUp 'со сдвигом вверх
И проходите цикл назад, чтобы не задумываться о том, что строки меняют номер после удаления:
Код:
For i = FinalRow to 1 step -1
Не работает моего скрипта VBS =( При добавлении в мой код ничего не происходит
iKarma вне форума Ответить с цитированием
Старый 04.05.2012, 10:23   #4
iKarma
Кипучий чайник
Пользователь
 
Регистрация: 17.10.2011
Сообщений: 55
По умолчанию

Нашёл вот такую вот функцию - она работает
Код:
Sub DelEmpty()
   'Matt Neuburg, PhD  http://www.tidbits.com/matt Aug 3, 1998
   Selection.SpecialCells(xlCellTypeBlanks).Delete (xlShiftUp)
End Sub
но только для VBA, а как для VBS её переписать?
iKarma вне форума Ответить с цитированием
Старый 04.05.2012, 10:27   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а может просто так:
Код:
Sub DelBlankCells()
  ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Delete shift:=xlShiftUp
End Sub
с xlShiftToLeft прижать все можно влево, а не вверх, как в примере.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.05.2012, 10:47   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Сказали бы сразу, что VBS. Дело в том, что компилятор VBS не знает экселевских констант, их надо заменять на значения либо определять:
Код:
objSheetNewData.Range("B" & i).resize(,2).delete Shift:=-4159 'xlToLeft 'со сдвигом влево

objSheetNewData.Range("B" & i).resize(,2).delete Shift:=-4162 'xlUp 'со сдвигом вверх
Код:
Sub DelEmpty()
   'Matt Neuburg, PhD  http://www.tidbits.com/matt Aug 3, 1998
   Selection.SpecialCells(4).Delete (-4162)
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчёт пустых ячеек в дбгрид DataBase213 БД в Delphi 7 28.04.2012 11:24
Подсчет пустых ячеек Artem_85 Microsoft Office Excel 2 24.02.2012 14:49
Удаление пустых ячеек в Word Didar Microsoft Office Word 5 20.01.2011 20:38
Сумма пустых ячеек дает 0 Miheiy Microsoft Office Excel 16 23.01.2010 12:05
Excel - удаление объед. ячеек в .doc prima Microsoft Office Excel 0 20.10.2009 11:40