Страницы: 1
RSS
Изменение с помощью цикла значения переменной VBA
 
Здравствуйте!!! Имеется в наличии таблица с значениями ".число".(Пример: .256). Желаемый результат на выходе: 0,256.
 
=--ПОДСТАВИТЬ(A2;".";",")
Или простой макрос:
Код
Sub ReplaceDot()
    Selection.FormulaR1C1 = Selection.FormulaR1C1
End Sub
выделяете ячейки и запускаете
Изменено: Дмитрий(The_Prist) Щербаков - 26.06.2020 11:37:14 (добавил код)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, спасибо за ответ.
Есть возможность реализовать это циклом?
 
Циклом? Есть. Начните сами хоть что-то для начала, раз есть какое-то требование именно циклом, а не чтобы работало. Примеров циклов в сети навалом, начните и потом напишите что не получилось. Тут элементарный цикл For справится.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 

Дмитрий(The_Prist) Щербаков, подскажите пожалуйста какие действия я должен сделать дальше?

Код
Sub qwer()
     Dim LastLine

     LastLine = Cells(Rows.Count, "A").End(xlUp).Row

     For i = 2 To LastLine
     End Sub
 
для For добавить как минимум Next(справка об этом очень правильно пишет) и между For и Next воткнуть преобразование ячейки:
Код
For i = 2 To LastLine
    Cells(i, "A").Value = CDbl(Replace(Cells(i, "A").Value, ".", ","))
Next
Изменено: Дмитрий(The_Prist) Щербаков - 26.06.2020 12:02:06
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, спасибо! Ранее только вот к такому результату пришел:
Код
Columns("K:K").Select
Selection.Replace What:=".", Replacement:=","
Но данный код не переводил значение в число.



Спасибо за помощь!!!
Изменено: Graber777 - 26.06.2020 12:13:37
 
Цитата
Graber777 написал:
Но данный код не переводил значение в число
и он без цикла. Но я же в первом своем сообщении привел код тоже без цикла, но который исправно работает и все переводит в число. И работает, кстати, в разы быстрее кода с циклом.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А для чего там вообще макрос, достаточно выделить и CTRL + H точку на запятую
Изменено: msi2102 - 26.06.2020 13:08:59
 
Дмитрий(The_Prist) Щербаков, msi2102,  это одна из многих "операций" в одном макросе. Пытаюсь автоматизировать процесс..., а так же пытаюсь изучать VBA и стараюсь(пытаюсь) делать все макросами :) .
Изменено: Graber777 - 26.06.2020 13:39:48
 
Цитата
Graber777 написал:
данный код не переводил значение в число.
Дополнение. Метод Range.Replace не обращает внимание на локализацию. Для него разделитель дробной доли - точка. Если после замены символов текст (свойство ячейки Formula) будет "похож" на число, то метод Replace преобразует значение ячейки в число. Можно просто поменять точку на точку (поскольку точка есть во всех интересующих нас ячейках):

Код
Selection.Replace ".", ".", xlPart

Не нужно путать применение метода Range.Replace и интерактивные действия в диалоге "Найти и заменить". В диалоге локализация учитывается.
Владимир
Страницы: 1
Наверх