Страница 2 из 2
Re: Макрос для редактирование содержимого ячейки и изменения ее формата
Добавлено: 11 апр 2008, 10:44
Fedozzz
Господа, спасибо огромное, все работает. Почти.
В числе вида 2.570 макрос просто удаляет точку

. Подскажите пожалуйста, как с этим бороться...
Worksheets("Расчет DDP").Range("P12:P1000").Replace _
What:=".", Replacement:=",", LookAt:=xlPart ' Заменяем точку на запятую
For Each cell In Worksheets("Расчет DDP").Range("P12:P1000")
If cell.Value <> 0 Then cell.Value = cell.Value * 1 ' Преображаем в число
Next
Re: Макрос для редактирование содержимого ячейки и изменения ее формата
Добавлено: 11 апр 2008, 11:38
Fedozzz
1) Несмотря на строчку On Error Resume Next макрос прерывался и выскакивала ошибка
2) Я убрал цикл и все (вообще все ) заработало
Работающий код выглядит следующим образом:
Worksheets("Расчет DDP").Range("P12:P1000").Replace _
What:=".", Replacement:=",", LookAt:=xlPart
точки заменяет, ячейки в числа сами превращаются... Красотень!
Re: Макрос для редактирование содержимого ячейки и изменения ее формата
Добавлено: 11 апр 2008, 11:46
SAS888
Все зависит от того, какой исходно установлен формат ячеек Вашего диапазона.
Чтобы от этого ничего не зависело, нужно (если VictorM не против) макрос немного доработать:
Код: Выделить всё
Sub Test()
Dim MyRange As Range
Set MyRange = Worksheets("Расчет DDP").Range("P12:P1000")
With MyRange
.Replace What:=".", Replacement:=Application.DecimalSeparator, LookAt:=xlPart
.NumberFormat = "General"
End With
End Sub
Re: Макрос для редактирование содержимого ячейки и изменения ее формата
Добавлено: 11 апр 2008, 12:21
VictorM
Fedozzz,
точки заменяет, ячейки в числа сами превращаются...
а у меня вот этого не происходит.
Код: Выделить всё
Worksheets("Расчет DDP").Range("P12:P1000").Replace _
What:=".", Replacement:=",", LookAt:=xlPart
только заменяет "." на "," и в ячейке получаем текст

Видимо действительно
Все зависит от того, какой исходно установлен формат ячеек Вашего диапазона.
====
если VictorM не против
ради Бога, какие могут быть против.

Все, что здесь выкладывается, как я говорил, пример, набросок. Так что любые дополнения, изменения только приветствуются

Re: Макрос для редактирование содержимого ячейки и изменения ее формата
Добавлено: 11 апр 2008, 22:59
Aent
Господа, а не проще ли локально макросом изменить DecimalSeparator?
Код: Выделить всё
Application.[B]DecimalSeparator[/B] = ","
Application.UseSystemSeparators = False
Разумеется надо поменять и формат с типом выравнивания
Re: Макрос для редактирование содержимого ячейки и изменения ее формата
Добавлено: 15 апр 2008, 12:25
Fedozzz
Господа, спасибо большое за ответы.
Все решил встроенной функцией val. Она сама распознала текст и преобразовала его в число в правильном формате.
.Cells(i, 16) = Val(Worksheets("IA").Cells(i - 5, 11))