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

Вход

Регистрация

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

 

= Мир MS Excel/убрать лишнее с единиц измерения - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » убрать лишнее с единиц измерения (Макросы/Sub)
убрать лишнее с единиц измерения
grh1 Дата: Воскресенье, 25.07.2021, 10:09 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Доброго дня, уважаемые знатоки!

В данном вопросе макрорекордер мне уже не может помочь, здесь просто надо знать, а я не знаю.
В таблице есть столбец с единицами измерения ТАКОГО ВИДА , нужно программно убрать лишнее, чтобы стало ТАК .
Таблица вниз может быть очень большой, и встречаются и пустые строки и объединенные ячейки.
Помогите с кодом

Спасибо.
К сообщению приложен файл: ...xls (36.0 Kb)


Vadym Gorokh
 
Ответить
СообщениеДоброго дня, уважаемые знатоки!

В данном вопросе макрорекордер мне уже не может помочь, здесь просто надо знать, а я не знаю.
В таблице есть столбец с единицами измерения ТАКОГО ВИДА , нужно программно убрать лишнее, чтобы стало ТАК .
Таблица вниз может быть очень большой, и встречаются и пустые строки и объединенные ячейки.
Помогите с кодом

Спасибо.

Автор - grh1
Дата добавления - 25.07.2021 в 10:09
Erjoma1981 Дата: Понедельник, 26.07.2021, 08:55 | Сообщение № 2
Группа: Проверенные
Ранг: Участник
Сообщений: 66
Репутация: 25 ±
Замечаний: 0% ±

Excel 2010, 2019
Здравствуйте.
[vba]
Код
Public Sub ЕдиницыИзмерения()
    Dim ПерваяЯчейка As Range, ПоследняяСтрока As LongPtr, СчетчикСтрок As LongPtr, Столбец As Integer, НомерПервогоПробела As Integer
    
    Set ПерваяЯчейка = Range("B2")
    Столбец = ПерваяЯчейка.Column
    ПоследняяСтрока = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
    
    For СчетчикСтрок = ПерваяЯчейка.Row To ПоследняяСтрока
       If InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", 1) > 0 Then
         Cells(СчетчикСтрок, Столбец).Value = "к-кт"
       Else
         НомерПервогоПробела = InStr(Trim(Cells(СчетчикСтрок, Столбец).Value), " ")
         If НомерПервогоПробела > 0 Then
            Cells(СчетчикСтрок, Столбец).Value = Mid(Trim(Cells(СчетчикСтрок, Столбец).Value), 1, НомерПервогоПробела - 1)
         End If
       End If
    Next СчетчикСтрок
    
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте.
[vba]
Код
Public Sub ЕдиницыИзмерения()
    Dim ПерваяЯчейка As Range, ПоследняяСтрока As LongPtr, СчетчикСтрок As LongPtr, Столбец As Integer, НомерПервогоПробела As Integer
    
    Set ПерваяЯчейка = Range("B2")
    Столбец = ПерваяЯчейка.Column
    ПоследняяСтрока = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
    
    For СчетчикСтрок = ПерваяЯчейка.Row To ПоследняяСтрока
       If InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", 1) > 0 Then
         Cells(СчетчикСтрок, Столбец).Value = "к-кт"
       Else
         НомерПервогоПробела = InStr(Trim(Cells(СчетчикСтрок, Столбец).Value), " ")
         If НомерПервогоПробела > 0 Then
            Cells(СчетчикСтрок, Столбец).Value = Mid(Trim(Cells(СчетчикСтрок, Столбец).Value), 1, НомерПервогоПробела - 1)
         End If
       End If
    Next СчетчикСтрок
    
End Sub
[/vba]

Автор - Erjoma1981
Дата добавления - 26.07.2021 в 08:55
grh1 Дата: Понедельник, 26.07.2021, 09:05 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Erjoma1981,
Спасибо большое - при первой проверке отрабатывает на отлично.
Буду тестить.

Еще раз спасибо.


Vadym Gorokh
 
Ответить
СообщениеErjoma1981,
Спасибо большое - при первой проверке отрабатывает на отлично.
Буду тестить.

Еще раз спасибо.

Автор - grh1
Дата добавления - 26.07.2021 в 09:05
grh1 Дата: Понедельник, 26.07.2021, 09:18 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Erjoma1981, подскажите пожалуйста, часто бывает в единицах измерения слова "комплект" и одновременно в других ячейках "комплектов"
вопрос - можно мне в строчке кода [vba]
Код
If InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", 1) > 0 Then
        Cells(СчетчикСтрок, Столбец).Value = "к-кт"
[/vba] через запятую добавить "комплектов" и будет так работать?
[vba]
Код
If InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", "комплектов", 1) > 0 Then
        Cells(СчетчикСтрок, Столбец).Value = "к-кт"
[/vba]

Попробовал - не хочет работать.
Значит нужно еще такую строчку добавить?

Не надо ничего добавлять, макрос меняет и слово "комплект" и слово "комплектов" в к-кт... Странно конечно, но меняет.


Vadym Gorokh

Сообщение отредактировал grh1 - Понедельник, 26.07.2021, 09:31
 
Ответить
СообщениеErjoma1981, подскажите пожалуйста, часто бывает в единицах измерения слова "комплект" и одновременно в других ячейках "комплектов"
вопрос - можно мне в строчке кода [vba]
Код
If InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", 1) > 0 Then
        Cells(СчетчикСтрок, Столбец).Value = "к-кт"
[/vba] через запятую добавить "комплектов" и будет так работать?
[vba]
Код
If InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", "комплектов", 1) > 0 Then
        Cells(СчетчикСтрок, Столбец).Value = "к-кт"
[/vba]

Попробовал - не хочет работать.
Значит нужно еще такую строчку добавить?

Не надо ничего добавлять, макрос меняет и слово "комплект" и слово "комплектов" в к-кт... Странно конечно, но меняет.

Автор - grh1
Дата добавления - 26.07.2021 в 09:18
Erjoma1981 Дата: Понедельник, 26.07.2021, 09:32 | Сообщение № 5
Группа: Проверенные
Ранг: Участник
Сообщений: 66
Репутация: 25 ±
Замечаний: 0% ±

Excel 2010, 2019
grh1,
непонятно "комплектов" содержит "комплект" . Зачем отдельно искать вхождение "комплектов"?

InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", "комплектов", 1)

так нельзя, синтаксис функции
 
Ответить
Сообщениеgrh1,
непонятно "комплектов" содержит "комплект" . Зачем отдельно искать вхождение "комплектов"?

InStr(1, Cells(СчетчикСтрок, Столбец).Value, "комплект", "комплектов", 1)

так нельзя, синтаксис функции

Автор - Erjoma1981
Дата добавления - 26.07.2021 в 09:32
grh1 Дата: Понедельник, 26.07.2021, 09:45 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Erjoma1981, я это понял и написал в своем посте выше
Не надо ничего добавлять, макрос меняет и слово "комплект" и слово "комплектов" в к-кт... Странно конечно, но меняет.


Спасибо еще раз.


Vadym Gorokh
 
Ответить
СообщениеErjoma1981, я это понял и написал в своем посте выше
Не надо ничего добавлять, макрос меняет и слово "комплект" и слово "комплектов" в к-кт... Странно конечно, но меняет.


Спасибо еще раз.

Автор - grh1
Дата добавления - 26.07.2021 в 09:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » убрать лишнее с единиц измерения (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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