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

Заранее спасибо!
...
Рейтинг: 0 / 0
Очистить ячейки содержащие буквы
    #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
Очистить ячейки содержащие буквы
    #36697223
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VasenichkaВсем привет! Помогите написать макрос, который бы удалял содержимое ячеек, если в них находятся буквы русского алфавита, необходимо оставить ячейки содержащие только цифры.
А что делать со всеми остальными ячейками?
...
Рейтинг: 0 / 0
Очистить ячейки содержащие буквы
    #36697230
Vasenichka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А остальные оставлять без изменения.
Вообще, этот макрос должен проверять только третий столбец (С) на наличие букв и очищать ячейки их содержащие.
...
Рейтинг: 0 / 0
Очистить ячейки содержащие буквы
    #36697234
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VasenichkaА остальные оставлять без изменения.
Ответ непонятен:
1) ячейки, содержащие буквы - очищаем
2) ячейки содержащие только цифры оставляем
3) остальные ячейки - оставляем? тогда зачем п.2?
...
Рейтинг: 0 / 0
Очистить ячейки содержащие буквы
    #36697252
Vasenichka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть столбец, ячейки которого должны содержать только цифры, но встречаются ячейки содержащие и цифры и буквы или только буквы(текст), вот их мне и надо очистить. В результате столбец должне содержать только цифры или пустые ячейки.
...
Рейтинг: 0 / 0
Очистить ячейки содержащие буквы
    #36697268
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
п.1встречаются ячейки содержащие и цифры и буквы или только буквы(текст), вот их мне и надо очистить.
п.2В результате столбец должне содержать только цифры или пустые ячейки.

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

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

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

Как проверить, есть ли русская буква:
Код: plaintext
If переменная Like "*[А-Яа-яЁё]*" Then
...
Рейтинг: 0 / 0
Очистить ячейки содержащие буквы
    #36697294
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но если по определению там есть только русские буквы и цифры, то вам подойдет и пример Хьюго.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Очистить ячейки содержащие буквы
    #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
Очистить ячейки содержащие буквы
    #37795964
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BoMBuR,

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

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

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

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

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

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


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