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

Вход

Регистрация

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

 

= Мир MS Excel/Внесение изменений в текст ячейки - Мир MS Excel

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

Excel 2013
Здравствуйте, знатоки! Необходимо изменить текст в ячейках: сделать перенос с новой строки текста после запятой и добавить в числовые значения порядок - четыре знака после запятой. Код для переноса я написал, а вот на добавление нулей не получается. Файл прилагаю. Помогите, пожалуйста! Может и для других пригодится, тех кто готовит информацию для размещения на сайте Госзакупок.
К сообщению приложен файл: 3264632.xlsm (21.9 Kb)
 
Ответить
СообщениеЗдравствуйте, знатоки! Необходимо изменить текст в ячейках: сделать перенос с новой строки текста после запятой и добавить в числовые значения порядок - четыре знака после запятой. Код для переноса я написал, а вот на добавление нулей не получается. Файл прилагаю. Помогите, пожалуйста! Может и для других пригодится, тех кто готовит информацию для размещения на сайте Госзакупок.

Автор - VelemShub
Дата добавления - 20.07.2017 в 10:28
sboy Дата: Четверг, 20.07.2017, 11:22 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
VelemShub, Добрый день.
С форматом что-то не вышло у меня, сделал по циклу... Может кто-нибудь поизящней сделает.
[vba]
Код
n_ = Split(Cells(i, Стлб).Value, ",")
                For x = LBound(n_) To UBound(n_)
                    p = InStr(n_(x), ".")
                    If p Then
                        n_(x) = Replace(n_(x), ".", ",")
                        For q = Len(n_(x)) To p + 3
                            n_(x) = n_(x) & "0"
                        Next q
                    Else
                        n_(x) = n_(x) & ",0000"
                    End If
                Next x
            Cells(i, Стлб).Value = Join(n_, Chr(10))
[/vba]
К сообщению приложен файл: 4239759.xlsm (21.5 Kb)


Яндекс: 410016850021169

Сообщение отредактировал sboy - Четверг, 20.07.2017, 11:23
 
Ответить
СообщениеVelemShub, Добрый день.
С форматом что-то не вышло у меня, сделал по циклу... Может кто-нибудь поизящней сделает.
[vba]
Код
n_ = Split(Cells(i, Стлб).Value, ",")
                For x = LBound(n_) To UBound(n_)
                    p = InStr(n_(x), ".")
                    If p Then
                        n_(x) = Replace(n_(x), ".", ",")
                        For q = Len(n_(x)) To p + 3
                            n_(x) = n_(x) & "0"
                        Next q
                    Else
                        n_(x) = n_(x) & ",0000"
                    End If
                Next x
            Cells(i, Стлб).Value = Join(n_, Chr(10))
[/vba]

Автор - sboy
Дата добавления - 20.07.2017 в 11:22
RAN Дата: Четверг, 20.07.2017, 11:29 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Для столбца D
[vba]
Код
Sub qq()
    Dim spl, i&
    spl = Split(ActiveCell.Value, vbLf)
    For i = 0 To UBound(spl)
        spl(i) = Format(spl(i), "0.0000")
    Next
    ActiveCell.Value = Join(spl, vbLf)
End Sub
[/vba]
Для столбцов А и B
[vba]
Код
Sub qqq()
    Dim spl, i&
    spl = Split(ActiveCell.Value, ",")
    For i = 0 To UBound(spl)
        spl(i) = Format(spl(i), "0.0000")
    Next
    ActiveCell.Value = Join(spl, vbLf)
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДля столбца D
[vba]
Код
Sub qq()
    Dim spl, i&
    spl = Split(ActiveCell.Value, vbLf)
    For i = 0 To UBound(spl)
        spl(i) = Format(spl(i), "0.0000")
    Next
    ActiveCell.Value = Join(spl, vbLf)
End Sub
[/vba]
Для столбцов А и B
[vba]
Код
Sub qqq()
    Dim spl, i&
    spl = Split(ActiveCell.Value, ",")
    For i = 0 To UBound(spl)
        spl(i) = Format(spl(i), "0.0000")
    Next
    ActiveCell.Value = Join(spl, vbLf)
End Sub
[/vba]

Автор - RAN
Дата добавления - 20.07.2017 в 11:29
sboy Дата: Четверг, 20.07.2017, 11:34 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010

вот почему у меня не получалось, я запятую ставил(((


Яндекс: 410016850021169
 
Ответить
Сообщение
вот почему у меня не получалось, я запятую ставил(((

Автор - sboy
Дата добавления - 20.07.2017 в 11:34
_Boroda_ Дата: Четверг, 20.07.2017, 11:49 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
О! Накидали уже сколько.
Зато Джойн у Андрея подсмотрел, забыл я про него совсем
VelemShub, макрос целиком, и перенос строк, и 4 нуля сразу
[vba]
Код
Sub tt()
    Dim d_ As Range
    On Error Resume Next
    c_ = CByte(InputBox("Введите № столбца в котором будет производиться обрабока данных", "№ столбца"))
    a = Cells(1, c_)
    If Err Then Exit Sub
    On Error GoTo 0
    Application.ReferenceStyle = xlA1
    r0_ = 2
    r1_ = Cells(Rows.Count, c_).End(xlUp).Row
    If r1_ < r0_ Then Exit Sub
    For Each d_ In Cells(r0_, c_).Resize(r1_ - r0_ + 1)
        mas_ = Split(d_, ",")
        For i = 0 To UBound(mas_)
            mas_(i) = Format(Replace(mas_(i), ".", Application.DecimalSeparator), "0.0000")
        Next i
        d_ = Join(mas_, vbLf)
    Next d_
End Sub
[/vba]
К сообщению приложен файл: 3264632_1.xlsm (22.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеО! Накидали уже сколько.
Зато Джойн у Андрея подсмотрел, забыл я про него совсем
VelemShub, макрос целиком, и перенос строк, и 4 нуля сразу
[vba]
Код
Sub tt()
    Dim d_ As Range
    On Error Resume Next
    c_ = CByte(InputBox("Введите № столбца в котором будет производиться обрабока данных", "№ столбца"))
    a = Cells(1, c_)
    If Err Then Exit Sub
    On Error GoTo 0
    Application.ReferenceStyle = xlA1
    r0_ = 2
    r1_ = Cells(Rows.Count, c_).End(xlUp).Row
    If r1_ < r0_ Then Exit Sub
    For Each d_ In Cells(r0_, c_).Resize(r1_ - r0_ + 1)
        mas_ = Split(d_, ",")
        For i = 0 To UBound(mas_)
            mas_(i) = Format(Replace(mas_(i), ".", Application.DecimalSeparator), "0.0000")
        Next i
        d_ = Join(mas_, vbLf)
    Next d_
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 20.07.2017 в 11:49
VelemShub Дата: Четверг, 20.07.2017, 15:07 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Большое спасибо!
 
Ответить
СообщениеБольшое спасибо!

Автор - VelemShub
Дата добавления - 20.07.2017 в 15:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Внесение изменений в текст ячейки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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