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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2014, 17:44   #11
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

IgorGO, Заметьте, термин заготовка, мною не употреблялся ибо я просто обратил внимание на количество строк в техзадании и вероятность того, что пустые ячейки действительно могут не удаляться.

Valerij, Кстати, теоретически(и практически тоже) в моём макросе, можно избавиться от одной из переменных, изменив цикл на For Each. Правда считается, что такой цикл будет выполняться дольше, но лично я не замерял ...

Код:
Private Sub Test2()
    Dim iCount&, iArr As Variant, Item As Variant
    iArr = Range(Cells(1), Cells(Rows.Count, 1).End(xlUp))
    
    For Each Item In iArr
        If Not Item Like "*[A-z]*" Then 'Or? IsNumeric(Item)
           iCount = iCount + 1
           iArr(iCount, 1) = Item
        End If
    Next
    
    Columns(1).ClearContents '.Clear
    Cells(1).Resize(iCount).NumberFormat = "@"
    Cells(1).Resize(iCount) = iArr
End Sub
pashulka вне форума Ответить с цитированием
Старый 21.11.2014, 18:39   #12
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Профессионал, а именно такой статус у Валерия, .....
Игорь, этот статус не я себе присваиваю, да и к экселю он не имеет отношения.
Ты это прекрасно знаешь, а напильником мне не привыкать работать, а ты в своей жизни напильник в глаза видел?

Давай на будущие, не отвечай на мои темы, кроме хамства, ни чего путного.

Удачи.

Цитата:
Сообщение от pashulka Посмотреть сообщение
Кстати, теоретически(и практически тоже) в моём макросе, ..... выполняться дольше, но лично я не замерял ...
Всё и так лЁтает.
Спасибо.
valerij вне форума Ответить с цитированием
Старый 21.11.2014, 18:50   #13
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Valerij, IgorGO Друзья, не ссорьтесь, ведь все мои предыдущие комментарии и были направлены исключительно на то, чтобы Вы не "бодались", тем более из-за таких мелочей, как макросы и пр.
Ведь в жизни и так мало хорошего, а если мы будем ещё и кусать друг друга, вообще станет хреново

А что касается статуса, так это не хамство, просто Игорь мне намекал, чтобы я от него отстал и не требовал довести до кондиции его вариант макроса.
pashulka вне форума Ответить с цитированием
Старый 21.11.2014, 19:31   #14
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
довести до кондиции .
pashulka!!
Что надо изменить, что бы удалить ещё ячейки с частью нулями
Например
0000000000000000
0000000008000000
0100000001000000
0200000002000000
0200000002000000
0200000002000000
0300000002000000
0200000003000000
0400000004000000
но такие не удалять
0300040005000600
3100710009004900
0101010101010101

Удалив с буквой получил 16816 строк, ещё тяжко анализировать, много с нулями, не нужных.

Если сложно то и ладно в ручную удалю...
valerij вне форума Ответить с цитированием
Старый 21.11.2014, 19:40   #15
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Т.е. есть какой-то лимит нулей ? допустим, если больше 12-и , то удаляем ?
или 0 не должны идти последовательно ?

Это не надо. Принято
0300040005000600

А эти ?
0400007000080000
4000700090003001
pashulka вне форума Ответить с цитированием
Старый 21.11.2014, 19:53   #16
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Валера,
будешь в Киеве - заезжай, посчитаешь мои напильники.

pashulka,
мы не ссоримся. я где-то в 2008 году написал Валере, что программирование ему противопоказано. каждая новая тема подтверждает правоту того диагноза.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 21.11.2014, 19:55   #17
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
Т.е. есть какой-то лимит нулей ? допустим, если больше 12-и , то удаляем ?
или 0 не должны идти последовательно ?

Это не надо. Принято
0300040005000600

А эти ?
0400007000080000
4000700090003001
Сложно сказать, остановимся:
Если > 4 нулей удалять
Или как бы я мог задать....
Вот такой пример
Код:
0030006000900070
7465737400000000
7569000000000000
0000000075736200
Первую строку удалять нельзя там числа > на 3000
00 3000 6000 9000 70
Остальные ячейки бесполезны.

pashulka, во всё своём массиве, я ищу вот такие ~ похожие числа
4048505860687078
40 48 50 58 60 68 70 78 - шаг 8
- гамма, которая отвечает за насыщенность картинки
шаг может быть любым, даже может и с буквами.

Ещё надо найти контрастность, яркость, уровни.

Последний раз редактировалось valerij; 21.11.2014 в 20:12.
valerij вне форума Ответить с цитированием
Старый 21.11.2014, 19:58   #18
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Валера, тебе конечно по-барабану, но программисту надо знать больше 4-х нулей подряд или больше 4-х нулей в строке (в значении)?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 21.11.2014, 20:02   #19
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Если взять за основу первый вариант и предположить, что речь идёт, всё-таки, о пяти и более нулях идущих подряд, то :

Код:
Private Sub Test()
    Dim iCount1&, iCount2&, iArr As Variant, Item As Variant
    iArr = Range(Cells(1), Cells(Rows.Count, 1).End(xlUp))

    For iCount1 = 1 To UBound(iArr)
        Item = iArr(iCount1, 1) '? CStr(iArr(iCount1, 1))
        If Not Item Like "*[A-z]*" Then 'Or? If IsNumeric(Item)
           If Not Item Like "*00000*" Then
              iCount2 = iCount2 + 1
              iArr(iCount2, 1) = Item
           End If
        End If
    Next

    Columns(1).ClearContents '.Clear
    Cells(1).Resize(iCount2).NumberFormat = "@"
    Cells(1).Resize(iCount2) = iArr
End Sub
P.S. Пока ничто не противоречит нашему критерию отбора ...

Последний раз редактировалось pashulka; 21.11.2014 в 20:28.
pashulka вне форума Ответить с цитированием
Старый 21.11.2014, 20:31   #20
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
Если взять за основу первый вариант и предположить, что речь идёт, всё-таки, о пяти и более нулях идущих подряд,
Угу, пока всё ОК, проверяю... 9 530 строк!!!

Всё отлично, теперь бы, очень скромно попросить, как искать последовательности - ШАГ!!!
???
4048505860687078
40 48 50 58 60 68 70 78 - шаг 8

как программно найти похожее?

Последний раз редактировалось valerij; 21.11.2014 в 20:41.
valerij вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить последний символ ячейки andre344 Microsoft Office Excel 10 14.09.2020 16:10
Как удалить из ячейки слово, содержащее.... Solny Microsoft Office Excel 12 09.01.2013 07:43
удалить строки содержащие определенные ячейки 123456789igor Общие вопросы Delphi 0 10.11.2012 00:15
По массивам, SOS! из целочисленного массива удалить из массива элементы, встречающиеся менее 3-х раз prelest' Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2011 22:37
Удалить лишние ячейки Ilya87 Microsoft Office Excel 8 25.02.2009 13:46