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

Вход

Регистрация

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

 

= Мир MS Excel/Добавление буквы в строку в зависмости от длины строки - Мир MS Excel

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

Excel 2010
Приветствую!

Нужен макрос, который будет определять количество символов в строке и добавлять\не добавлять доп.знаки.

Например:

есть столбец с номером маршрута. Количество цифр варьируется от 1 до 3. Если номер маршрута "1", то макрос должен заменить "1" на "W001", если номер маршрута "11", макрос должен заменить "11" на "W011", если номер маршрута "111", нужно заменить на "W111"

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

[vba]
Код
Dim StrA As String
Dim StrB As String
StrA="W"&"00"
[/vba]


Сообщение отредактировал Volodya - Понедельник, 23.04.2018, 10:43
 
Ответить
СообщениеПриветствую!

Нужен макрос, который будет определять количество символов в строке и добавлять\не добавлять доп.знаки.

Например:

есть столбец с номером маршрута. Количество цифр варьируется от 1 до 3. Если номер маршрута "1", то макрос должен заменить "1" на "W001", если номер маршрута "11", макрос должен заменить "11" на "W011", если номер маршрута "111", нужно заменить на "W111"

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

[vba]
Код
Dim StrA As String
Dim StrB As String
StrA="W"&"00"
[/vba]

Автор - Volodya
Дата добавления - 23.04.2018 в 10:17
and_evg Дата: Понедельник, 23.04.2018, 10:21 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
И вам здравствуйте.
А просто формат ячейки "W"000 не подойдет?
 
Ответить
СообщениеИ вам здравствуйте.
А просто формат ячейки "W"000 не подойдет?

Автор - and_evg
Дата добавления - 23.04.2018 в 10:21
Volodya Дата: Понедельник, 23.04.2018, 10:42 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
and_evg, Здравствуйте! Приветствие отвалилось куда-то.
Не знаю, не пробовал, не думал даже об этом. А как это можно связать с длинной строки?
 
Ответить
Сообщениеand_evg, Здравствуйте! Приветствие отвалилось куда-то.
Не знаю, не пробовал, не думал даже об этом. А как это можно связать с длинной строки?

Автор - Volodya
Дата добавления - 23.04.2018 в 10:42
Volodya Дата: Понедельник, 23.04.2018, 11:01 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
and_evg, все, спасибо, стыдно мне должно быть. Но мне не стыдно.
 
Ответить
Сообщениеand_evg, все, спасибо, стыдно мне должно быть. Но мне не стыдно.

Автор - Volodya
Дата добавления - 23.04.2018 в 11:01
and_evg Дата: Понедельник, 23.04.2018, 11:43 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
А как это можно связать с длинной строки?

длина строки задана тремя нулями в формате.
 
Ответить
Сообщение
А как это можно связать с длинной строки?

длина строки задана тремя нулями в формате.

Автор - and_evg
Дата добавления - 23.04.2018 в 11:43
Volodya Дата: Понедельник, 23.04.2018, 12:30 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
and_evg, дико извиняюсь, но такой метод не подходит, так как столбец в котором я меняю формат ячеек затем сцепляется с другим столбцом, который содержит другие числа, с помощью формулы СЦЕПИТЬ(). Соответственно в конечном столбце он пишет 123\1, вместо 123\W001 и 123\11, вместо 123\W011


Сообщение отредактировал Volodya - Понедельник, 23.04.2018, 12:31
 
Ответить
Сообщениеand_evg, дико извиняюсь, но такой метод не подходит, так как столбец в котором я меняю формат ячеек затем сцепляется с другим столбцом, который содержит другие числа, с помощью формулы СЦЕПИТЬ(). Соответственно в конечном столбце он пишет 123\1, вместо 123\W001 и 123\11, вместо 123\W011

Автор - Volodya
Дата добавления - 23.04.2018 в 12:30
and_evg Дата: Понедельник, 23.04.2018, 12:36 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
Volodya, тогда файл в студию!
 
Ответить
СообщениеVolodya, тогда файл в студию!

Автор - and_evg
Дата добавления - 23.04.2018 в 12:36
and_evg Дата: Понедельник, 23.04.2018, 12:58 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
Если без файла (да простят меня модераторы) тогда для выделенного диапазона
[vba]
Код
Public Sub zxcv()
    For Each i In Selection
        i.Value = "W" & String(3 - Len(i), "0") & i.Value
    Next
End Sub
[/vba]
 
Ответить
СообщениеЕсли без файла (да простят меня модераторы) тогда для выделенного диапазона
[vba]
Код
Public Sub zxcv()
    For Each i In Selection
        i.Value = "W" & String(3 - Len(i), "0") & i.Value
    Next
End Sub
[/vba]

Автор - and_evg
Дата добавления - 23.04.2018 в 12:58
Апострофф Дата: Понедельник, 23.04.2018, 13:14 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 123 ±
Замечаний: 0% ±

Excel 1997
Или так (без Len и String)-
[vba]
Код
I="W" & FORMAT$(I,"000")
[/vba]
 
Ответить
СообщениеИли так (без Len и String)-
[vba]
Код
I="W" & FORMAT$(I,"000")
[/vba]

Автор - Апострофф
Дата добавления - 23.04.2018 в 13:14
and_evg Дата: Понедельник, 23.04.2018, 13:17 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 452
Репутация: 78 ±
Замечаний: 0% ±

Excel 2007
Цитата Апострофф, 23.04.2018 в 13:14, в сообщении № 9 ()
Или так

Точно!
А то пробовал
[vba]
Код
FORMAT(I,"W000")
[/vba] Но W зарезервированный символ и выдавало неверный результат
 
Ответить
Сообщение
Цитата Апострофф, 23.04.2018 в 13:14, в сообщении № 9 ()
Или так

Точно!
А то пробовал
[vba]
Код
FORMAT(I,"W000")
[/vba] Но W зарезервированный символ и выдавало неверный результат

Автор - and_evg
Дата добавления - 23.04.2018 в 13:17
_Boroda_ Дата: Понедельник, 23.04.2018, 14:13 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если
столбец ... затем сцепляется с другим столбцом, который содержит другие числа, с помощью формулы СЦЕПИТЬ()
, то напишите Ваше СЦЕПИТЬ вот так
Код
=СЦЕПИТЬ(первый_столбец;ТЕКСТ(второй_столбец;"W000")

Вот так
Код
=СЦЕПИТЬ(A1;ТЕКСТ(B1;"W000"))

или так
Код
=A1&ТЕКСТ(B1;"W000")


И не нужны никакие макросы


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли
столбец ... затем сцепляется с другим столбцом, который содержит другие числа, с помощью формулы СЦЕПИТЬ()
, то напишите Ваше СЦЕПИТЬ вот так
Код
=СЦЕПИТЬ(первый_столбец;ТЕКСТ(второй_столбец;"W000")

Вот так
Код
=СЦЕПИТЬ(A1;ТЕКСТ(B1;"W000"))

или так
Код
=A1&ТЕКСТ(B1;"W000")


И не нужны никакие макросы

Автор - _Boroda_
Дата добавления - 23.04.2018 в 14:13
Volodya Дата: Понедельник, 23.04.2018, 14:14 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Если без файла (да простят меня модераторы) тогда для выделенного диапазона

Public Sub zxcv()
For Each i In Selection
i.Value = "W" & String(3 - Len(i), "0") & i.Value
Next
End Sub

спасибо огромное. Ваш метод сработал, получилось то, что нужно.
 
Ответить
Сообщение
Если без файла (да простят меня модераторы) тогда для выделенного диапазона

Public Sub zxcv()
For Each i In Selection
i.Value = "W" & String(3 - Len(i), "0") & i.Value
Next
End Sub

спасибо огромное. Ваш метод сработал, получилось то, что нужно.

Автор - Volodya
Дата добавления - 23.04.2018 в 14:14
Volodya Дата: Понедельник, 23.04.2018, 14:15 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Апострофф, вам тоже спасибо, тоже работает :)
 
Ответить
СообщениеАпострофф, вам тоже спасибо, тоже работает :)

Автор - Volodya
Дата добавления - 23.04.2018 в 14:15
Volodya Дата: Понедельник, 23.04.2018, 14:22 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, и так тоже работает, спасибо
 
Ответить
Сообщение_Boroda_, и так тоже работает, спасибо

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

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