Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выборочное удаление значений в ячейках - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выборочное удаление значений в ячейках
tasdel Дата: Суббота, 22.09.2018, 09:19 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте уважаемые программисты!!!
Столкнулся с проблемой, а именно с выборочным удалением значений ячеек, в своей электронной таблице.
В excel имеется вкладка "выделение группы ячеек". Работает все это замечательно, но выделяет, как бульдозер и соответственно возникают проблемы по удалению значений в ячейках с нужным для меня форматом. Хотел перехитрить все это дело с помощью рекодера и написать собственный макрос по каждому ниже перечисленному пункту, но как говорится: "Тямы не хватает".
Ребята!!! Как всегда, заранее вам спасибо!!!

1. удалить значения из ячеек только с числовыми значениями;

2. удалить значения из ячеек только с текстовыми значениями;

3. удалить значения из ячеек только с формулами;

4. удалить значения из ячеек только с датами;

5. удалить значения из ячеек только с общими;


Сообщение отредактировал tasdel - Суббота, 22.09.2018, 09:30
 
Ответить
СообщениеЗдравствуйте уважаемые программисты!!!
Столкнулся с проблемой, а именно с выборочным удалением значений ячеек, в своей электронной таблице.
В excel имеется вкладка "выделение группы ячеек". Работает все это замечательно, но выделяет, как бульдозер и соответственно возникают проблемы по удалению значений в ячейках с нужным для меня форматом. Хотел перехитрить все это дело с помощью рекодера и написать собственный макрос по каждому ниже перечисленному пункту, но как говорится: "Тямы не хватает".
Ребята!!! Как всегда, заранее вам спасибо!!!

1. удалить значения из ячеек только с числовыми значениями;

2. удалить значения из ячеек только с текстовыми значениями;

3. удалить значения из ячеек только с формулами;

4. удалить значения из ячеек только с датами;

5. удалить значения из ячеек только с общими;

Автор - tasdel
Дата добавления - 22.09.2018 в 09:19
китин Дата: Суббота, 22.09.2018, 11:09 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7040
Репутация: 1080 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Хотел перехитрить все это дело с помощью рекодера и написать собственный макрос

стесняюсь спросить: и хде он? и хде ваш файл с вашими попытками? или прикажете все ваши 1 2 3 4 5 6 7 .... нам рисовать?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
Хотел перехитрить все это дело с помощью рекодера и написать собственный макрос

стесняюсь спросить: и хде он? и хде ваш файл с вашими попытками? или прикажете все ваши 1 2 3 4 5 6 7 .... нам рисовать?

Автор - китин
Дата добавления - 22.09.2018 в 11:09
tasdel Дата: Суббота, 22.09.2018, 12:14 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Прикрепляю файл.
К сообщению приложен файл: 9333470.xls (41.0 Kb)
 
Ответить
СообщениеПрикрепляю файл.

Автор - tasdel
Дата добавления - 22.09.2018 в 12:14
tasdel Дата: Суббота, 22.09.2018, 16:25 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
китин, я приложил файл. и хде он? и хде ваш ответ?
 
Ответить
Сообщениекитин, я приложил файл. и хде он? и хде ваш ответ?

Автор - tasdel
Дата добавления - 22.09.2018 в 16:25
InExSu Дата: Воскресенье, 23.09.2018, 10:56 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
[vba]
Код
Option Explicit

Public Sub Чистилище(Optional ByVal msg As Variant)
    Ячейки_Очистить "Числа", ActiveSheet.UsedRange
End Sub

Public Function Ячейки_Очистить(ByVal str As String, _
                    rng As Range) _
                    As Variant
    Dim eL As Range
    For Each eL In rng
        If str = "Числа" Then Ячейку_Число_Очистить eL
        ' If str = "Дата" Then Ячейку_Дата_Очистить eL
    Next
End Function

Public Function Ячейку_Число_Очистить(eL As Range) As Variant
    With eL
        If .MergeCells = False Then _
           If Left$(eL.Value, 1) <> "=" Then _
           If IsNumeric(.Value) Then .ClearContents
    End With
End Function

Public Function Ячейку_Дата_Очистить(eL As Range) As Variant
    With eL
    ' Ваш код
    End With
End Function
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
[vba]
Код
Option Explicit

Public Sub Чистилище(Optional ByVal msg As Variant)
    Ячейки_Очистить "Числа", ActiveSheet.UsedRange
End Sub

Public Function Ячейки_Очистить(ByVal str As String, _
                    rng As Range) _
                    As Variant
    Dim eL As Range
    For Each eL In rng
        If str = "Числа" Then Ячейку_Число_Очистить eL
        ' If str = "Дата" Then Ячейку_Дата_Очистить eL
    Next
End Function

Public Function Ячейку_Число_Очистить(eL As Range) As Variant
    With eL
        If .MergeCells = False Then _
           If Left$(eL.Value, 1) <> "=" Then _
           If IsNumeric(.Value) Then .ClearContents
    End With
End Function

Public Function Ячейку_Дата_Очистить(eL As Range) As Variant
    With eL
    ' Ваш код
    End With
End Function
[/vba]

Автор - InExSu
Дата добавления - 23.09.2018 в 10:56
_Boroda_ Дата: Воскресенье, 23.09.2018, 12:34 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
китин, я приложил файл. и хде он? и хде ваш ответ?

Даже если бы вопрос был поставлен корректно, это вовсе не означает, что ответ будет быстро и будет вообще - отвечают здесь обычно при наличии времени, желания и возможности

А по поводу вопроса есть вопросы
1. Числовые значения любые или только константы (не формулы)? Числовое значение в текстовом формате берем или нет?
2. Аналогично первой части п.1. Текстовые значения в числовом формате берем?
3. Понятно
4. Нужно ловить определенный формат дат или вообще любые даты? Если в ячейке формат даты, но в ней введено текстовое значение, то берем эту ячейку или нет? Если дату возвращает формула, то берем?
5. Если в ячейке общий формат и введено значение с апострофом (например, '01.01.2018), то это считается датой или общим форматом?

По-хорошему Вам бы нужно было в файле раскрасить (или как-то еще пометить) группы ячеек для каждого из пяти случаев


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
китин, я приложил файл. и хде он? и хде ваш ответ?

Даже если бы вопрос был поставлен корректно, это вовсе не означает, что ответ будет быстро и будет вообще - отвечают здесь обычно при наличии времени, желания и возможности

А по поводу вопроса есть вопросы
1. Числовые значения любые или только константы (не формулы)? Числовое значение в текстовом формате берем или нет?
2. Аналогично первой части п.1. Текстовые значения в числовом формате берем?
3. Понятно
4. Нужно ловить определенный формат дат или вообще любые даты? Если в ячейке формат даты, но в ней введено текстовое значение, то берем эту ячейку или нет? Если дату возвращает формула, то берем?
5. Если в ячейке общий формат и введено значение с апострофом (например, '01.01.2018), то это считается датой или общим форматом?

По-хорошему Вам бы нужно было в файле раскрасить (или как-то еще пометить) группы ячеек для каждого из пяти случаев

Автор - _Boroda_
Дата добавления - 23.09.2018 в 12:34
tasdel Дата: Воскресенье, 23.09.2018, 17:17 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Прилагаю файл раскрашенный.
К сообщению приложен файл: 1087512.xls (60.5 Kb)
 
Ответить
Сообщение_Boroda_, Прилагаю файл раскрашенный.

Автор - tasdel
Дата добавления - 23.09.2018 в 17:17
tasdel Дата: Воскресенье, 23.09.2018, 17:25 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
InExSu, Я не понял как это все работает. Но все-равно спасибо!
 
Ответить
СообщениеInExSu, Я не понял как это все работает. Но все-равно спасибо!

Автор - tasdel
Дата добавления - 23.09.2018 в 17:25
InExSu Дата: Воскресенье, 23.09.2018, 21:00 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
не понял как это все работает

А то! Там ведь инкапсуляция и полиморфизм.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
не понял как это все работает

А то! Там ведь инкапсуляция и полиморфизм.

Автор - InExSu
Дата добавления - 23.09.2018 в 21:00
_Boroda_ Дата: Воскресенье, 23.09.2018, 22:35 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub app0()
    With Application: .ScreenUpdating = 0: .Calculation = 3: End With
End Sub
Sub app1()
    With Application: .ScreenUpdating = 1: .Calculation = 1: End With
End Sub
Sub mChisla()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 1)
    For Each d_ In d0_
        If IsNumeric(d_) Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mText()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 2)
    For Each d_ In d0_
        If d_.NumberFormat = "@" Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mForm()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeFormulas, 23)
    For Each d_ In d0_
        If d_.NumberFormat = "General" Then 'думаю, что это не нужно
            If d_.HasFormula Then d_.MergeArea.ClearContents
        End If
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mDat()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 1)
    For Each d_ In d0_
        If IsDate(d_) Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mOb()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 2)
    For Each d_ In d0_
        If d_.NumberFormat = "General" Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
[/vba]
К сообщению приложен файл: 9333470_1.xlsm (26.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub app0()
    With Application: .ScreenUpdating = 0: .Calculation = 3: End With
End Sub
Sub app1()
    With Application: .ScreenUpdating = 1: .Calculation = 1: End With
End Sub
Sub mChisla()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 1)
    For Each d_ In d0_
        If IsNumeric(d_) Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mText()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 2)
    For Each d_ In d0_
        If d_.NumberFormat = "@" Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mForm()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeFormulas, 23)
    For Each d_ In d0_
        If d_.NumberFormat = "General" Then 'думаю, что это не нужно
            If d_.HasFormula Then d_.MergeArea.ClearContents
        End If
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mDat()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 1)
    For Each d_ In d0_
        If IsDate(d_) Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
Sub mOb()
    app0
    Set d0_ = Cells(1).SpecialCells(xlCellTypeConstants, 2)
    For Each d_ In d0_
        If d_.NumberFormat = "General" Then d_.MergeArea.ClearContents
    Next d_
    Application.Calculation = xlCalculationAutomatic
    app1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 23.09.2018 в 22:35
tasdel Дата: Понедельник, 24.09.2018, 18:54 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Ну что я могу еще сказать: "Это просто круто!!!". В очередной раз Вам огромное спасибо!!!
На самом деле эта тема действительно актуальная. Для тех, кто ведет учет с помощью массивных электронных таблиц
этот макрос является настоящим - "бальзамом надушу".
Мною был упущен один момент - это удаление по цвету ячейки. Можно будет сделать дополнение к основному макросу?
Заранее Спасибо!!!
 
Ответить
Сообщение_Boroda_, Ну что я могу еще сказать: "Это просто круто!!!". В очередной раз Вам огромное спасибо!!!
На самом деле эта тема действительно актуальная. Для тех, кто ведет учет с помощью массивных электронных таблиц
этот макрос является настоящим - "бальзамом надушу".
Мною был упущен один момент - это удаление по цвету ячейки. Можно будет сделать дополнение к основному макросу?
Заранее Спасибо!!!

Автор - tasdel
Дата добавления - 24.09.2018 в 18:54
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!