Здравствуйте! я пробовал найти ответ через поиск и в приемах, но не нашел, если пропустил, просьба дать ссылку. Вопрос у меня такой: есть столбец с данными, а именно: значения от -1 до -99999. Из этого столбца добрые люди выборочно удалили значения вместе со строками. Необходимо: выяснить все удаленные значения и сохранить их отдельно, в принципе, в любом варианте, чтоб можно было их распечатать. (есть Excel 2003 и 2007)
Куда удалили? Или Вам необходим какой-то макрос, который удаляемые строки переносит на другой лист?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
CAHO, просто удалили, безвозвратно. Видимо, макрос, если без него никак нельзя... чтобы выбрать удаленные значения и, как вариант, перенести их на другой лист.
googlogmob, такая идея уже была, но всё дело в том, что это работает в случае, когда попадаются удалённые единичные строки, а если удалены 50 или 100 строк подряд, разве это поможет (если я правильно всё понял)?
kuks70 написал: есть столбец с данными, а именно: значения от -1 до -99999.
Что-то я совсем запутался. У Вас всего один столбец? А какие в нём значения кроме чисел в промежутке от -1 до -99999? И зачем знать какие числа удалены, если опять восстановить их нумерацию хотите. Что-то недоговариваете. Вложите файл с примером. Не обязательно оригинал.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
kuks70 написал: ikki , нет не поможет, в этом случае мне показывает количество пропущенных строк! а мне нужны сами значения.
на если использовать формулу для случаев результата не 1., за начальное значение - Ваше число -, конечное - плюс значение при расчета, и заполнить через разделитель
Юрий М, огромная благодарность за макрос! я изменил его под свои цифры, всё работает! столько времени сэкономлено! Ещё раз благодарю! Всех благодарю за уделённое время моей проблеме!
Sub fdv_ikki()
Dim a(), t%(-99 To -1), r%(1 To 99, 1 To 1)
a = Range([a2], Cells(Rows.Count, 1).End(xlUp)).Value
For i = 1 To UBound(a): t(a(i, 1)) = 1: Next
For i = UBound(t) To LBound(t) Step -1
If t(i) = 0 Then j = j + 1: r(j, 1) = i
Next
[d2].Resize(j).Value = r
End Sub
фрилансер Excel, VBA - контакты в профиле "Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
ikki, если бы Вы смогли найти возможность объяснить, то я бы смог понять, что сделали Вы, а после этого я бы стал разбираться, что делать мне. Обычно люди, которые хотят помочь - объясняют. Хотя в данной ситуации был предложен готовый макрос. Если есть готовое решение, то для чего всё усложнять? Мне и так ещё с БД не одну неделю возиться.
Файлы не смотрел, но - если нужно выяснить, каких чисел нет в конкретном заранее известном списке - какие проблемы протянуть рядом с таким списком СЧЁТЕСЛИ(испорченный список, очередной элемент оригинального списка), и затем фильтром или сортировкой отобрать строки с 0?