Страница 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
только заменяет "." на "," и в ячейке получаем текст :confused:
Видимо действительно
Все зависит от того, какой исходно установлен формат ячеек Вашего диапазона.
====
если 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))