Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Очистить ячейки содержащие буквы / 21 сообщений из 21, страница 1 из 1
20.06.2010, 19:20
    #36697170
Vasenichka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Всем привет! Помогите написать макрос, который бы удалял содержимое ячеек, если в них находятся буквы русского алфавита, необходимо оставить ячейки содержащие только цифры.

Заранее спасибо!
...
Рейтинг: 0 / 0
20.06.2010, 19:55
    #36697219
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Vasenichka,
если не выделять особо русский алфавит:
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub tt()
Dim cc As Range
For Each cc In UsedRange.Cells
If Not IsNumeric(cc.Value) Then cc.ClearContents
Next
End Sub
...
Рейтинг: 0 / 0
20.06.2010, 20:01
    #36697223
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
VasenichkaВсем привет! Помогите написать макрос, который бы удалял содержимое ячеек, если в них находятся буквы русского алфавита, необходимо оставить ячейки содержащие только цифры.
А что делать со всеми остальными ячейками?
...
Рейтинг: 0 / 0
20.06.2010, 20:06
    #36697230
Vasenichka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
А остальные оставлять без изменения.
Вообще, этот макрос должен проверять только третий столбец (С) на наличие букв и очищать ячейки их содержащие.
...
Рейтинг: 0 / 0
20.06.2010, 20:09
    #36697234
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
VasenichkaА остальные оставлять без изменения.
Ответ непонятен:
1) ячейки, содержащие буквы - очищаем
2) ячейки содержащие только цифры оставляем
3) остальные ячейки - оставляем? тогда зачем п.2?
...
Рейтинг: 0 / 0
20.06.2010, 20:20
    #36697252
Vasenichka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Есть столбец, ячейки которого должны содержать только цифры, но встречаются ячейки содержащие и цифры и буквы или только буквы(текст), вот их мне и надо очистить. В результате столбец должне содержать только цифры или пустые ячейки.
...
Рейтинг: 0 / 0
20.06.2010, 20:32
    #36697268
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
п.1встречаются ячейки содержащие и цифры и буквы или только буквы(текст), вот их мне и надо очистить.
п.2В результате столбец должне содержать только цифры или пустые ячейки.

Это совершенно разные алгоритмы.
Если, к примеру, ячейка содержит восклицательный знак, то если мы сделаем п.1, то п.2 - все равно не будет выполнен. То есть ваше ТЗ изначально содержит противоречие. Или, скажем дробное или отрицательно число. Оно содержит не только цифры. Если его не удалять, то оно опять же будет противоречить п.2., а если удалять - будет противоречить п.1.

Ну фиг с ним, допустим я придираюсь, допустим, у вас там только буквы и целые положительные числа по определению и никогда ни за что других вариантов не будет.
VasenichkaПомогите написать макрос
Ну так выкладывайте, что вы уже написали, что не получилось. А то пока это выглядит не "помогите", а "напишите за меня"....
...
Рейтинг: 0 / 0
20.06.2010, 20:44
    #36697285
Vasenichka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Да, Вы действительно придираетесь.
Мне необходимо очищать ячейку если она содержит хотя бы одну букву русского алфавита и в ячейках, действительно по определению не может быть никаких знаков препинания, отрицательных значений и т.д.

Я насчет помогите....допустим я знаю как организовать цикл который бы пробегал по всем ячейкам третьего столбца, только мне не понятно как поставить условие что если встретилась буква в ячейке то ее необходимо очистить. Как очистить ячейку я тоже догадываюсь
...
Рейтинг: 0 / 0
20.06.2010, 20:47
    #36697292
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Отлично!
Вы много знаете.

Как проверить, есть ли русская буква:
Код: plaintext
If переменная Like "*[А-Яа-яЁё]*" Then
...
Рейтинг: 0 / 0
20.06.2010, 20:49
    #36697294
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Но если по определению там есть только русские буквы и цифры, то вам подойдет и пример Хьюго.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
15.05.2012, 11:50
    #37794557
BoMBuR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Народ, не подскажете как интегрировать код Hugo под этот?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim a As Range, i&, c&
For Each a In Cells.SpecialCells(xlCellTypeConstants).Areas
 If i = 0 Then 
        c = a.Column
        i = a.Row + a.Rows.Count
    Else
        a.Copy Cells(i, c)
        i = i + a.Rows.Count
             
        End If
Next


А то я подзабыл VB и туплю.
...
Рейтинг: 0 / 0
15.05.2012, 20:21
    #37795964
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
BoMBuR,

Поменять Copy на Cut, это не то, что тебе надо? Если то, то интегрируй этот код в твой.
...
Рейтинг: 0 / 0
15.05.2012, 23:07
    #37796120
BoMBuR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
VladConnBoMBuR,

Поменять Copy на Cut, это не то, что тебе надо? Если то, то интегрируй этот код в твой.

Нет, мой код просто копирует столбцы в один, а мне надо чтобы в этом цикле убирались строки с буквами, но я что-то с обращениями к содержимому ячеек не могу разобраться. Что вместо a.Value надо ставить чтобы была проверка ячейки с координатами i и c?
...
Рейтинг: 0 / 0
15.05.2012, 23:18
    #37796131
BoMBuR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Ну, то есть чтобы было копирование, но с удалением элементов с буквами.
...
Рейтинг: 0 / 0
16.05.2012, 04:41
    #37796267
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
BoMBuR,

Ставь функцию isnumeric. Она возвращает False, если ее аргумент не может быть числом. Применяй ее ко всем ячейкам строки, пересекающей твои столбцы. Если по всем столбцам будет False, то удаляй строку. И так по всем строкам. Т.е. сначала соединяй все Areas в одну, а потом чисти.
...
Рейтинг: 0 / 0
16.05.2012, 04:45
    #37796268
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
BoMBuR,

Правда, я не знаю, что такое строки с буквами у тебя. Это когда во всех ячейках есть буквы или хотя бы в одной? В зависимости от твоей интерпретации и сделай логику. Проверь, кстати, научную нотацию числа вроде 10Е5 (там буква Е, но это число)
...
Рейтинг: 0 / 0
18.05.2012, 20:32
    #37801734
BoMBuR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
VladConn,

Спасибо, но у меня проблема в том, чтобы вызвать ячейку и считать значение ее содержимого.
a.Value Cells(i, c) не работает и, судя по всему, не должно работать...
...
Рейтинг: 0 / 0
18.05.2012, 20:48
    #37801743
BoMBuR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
А с "Е" в числех вроде не должно быть проблем, т.к. записывается-то там само число и только для пользователя введена такая запись.
...
Рейтинг: 0 / 0
18.05.2012, 22:21
    #37801823
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
BoMBuR, .Areas - это не одна ячейка.
Если хотите выкинуть буквы/строки или что-то ещё, то думаю нужно или брать данные в массив, его перебирать и нужное складывать куда хотите, или прямо с листа по одной ячейке/строке копировать.
Но что именно нужно сделать, и в каком виде данные - отсюда не видать.
...
Рейтинг: 0 / 0
19.05.2012, 14:19
    #37802087
BoMBuR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
Hugo121,VladConn,
Полная задача такая - надо сохранить лист excel в формате .prn с двумя столбцами численных значений, для того чтобы потом посчитать преобразование фурье в написанной мной проге. Но моя прога не будет воспринимать текст, так что я взялся за написание макроса для приведения экселевских файлов в нужный мне вид. Т.е. мне надо 1) скопировать столбцы в одну пару столбцов 2) убрать текст(причем если в ячейке есть текст, то можно удалять всю строку) 3)сохранить.
Код: vbnet
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 Макрос() 
Dim a As Range, i&, c&
For Each a In Cells.SpecialCells(xlCellTypeConstants).Areas

 If i = 0 Then 
         
                 c = a.Column
        i = a.Row + a.Rows.Count
    
    Else   
        a.Cut Cells(i, c)
        i = i + a.Rows.Count
       
       
       End If
Next



Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        
        
      Do
          fName = Application.GetSaveAsFilename
      Loop Until fName <> False
   ActiveWorkbook.SaveAs Filename:=fName & IIf(Right(fName, 4) <> "prn", "prn", ""), Password:="", WriteResPassword:="", _
        FileFormat:=xlTextPrinter, CreateBackup:=False

End Sub



1 и 3 блоки работают, а вот удаление в цикл с копированием я так и не засунул. Собственно, все что мне надо - узнать как именно надо обращаться к ячейке i,c. То есть, что мне ставить вместо a.Value в коде Hugo, приведенном выше.
...
Рейтинг: 0 / 0
19.05.2012, 17:14
    #37802182
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очистить ячейки содержащие буквы
BoMBuR, я не вижу в Вашем коде a.Value.
Т.к. Вы перебираете areas, что возможно есть сразу несколько ячеек, то... В общем, ничего не понять.
Да и эти areas тоже бывают как попало определяются - я тут попробовал на примере - то берёт две ячейки рядом, то не берёт...
Давайте свои данные, и готовый результат. И сколько данных вообще планируется - может быть можно сделать вообще всё иначе и быстрее.
Я пока ничего из задачи не понимаю.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Очистить ячейки содержащие буквы / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]