Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: oreman от 27.02.2016, 13:59

Название: Финансовый символ рубля в VBA
Отправлено: oreman от 27.02.2016, 13:59
Добрый день.
Есть небольшая процедурка которая в зависимости от выбраной валюты, устанавливает формат ячеек.
Но блин две проблемы.
1. Не могу почему то в VBA поставить символ рубля, выводится вопросительный знак ?
2. Не могу найти ошибку в формате Евро, вроде бы все правильно написано, а перестала работать :(

Хелп
Вот процедурка

Sub ReplaceFormats()
Application.FindFormat.Clear
Application.ReplaceFormat.Clear
NumFormat = Worksheets("DD").Range("D14").NumberFormat
OldFormat = Worksheets("DD").Range("D14").NumberFormat
   
    If Worksheets("DD").Range("I1").Value = "EUR" Then
        NumFormat = "[$ˆ-409]#,##0_;-[$ˆ-409]#,##0"
    End If

    If Worksheets("DD").Range("I1").Value = "USD" Then
        NumFormat = "[$$-409]#,##0_ ;-[$$-409]#,##0 "
    End If
   
    If Worksheets("DD").Range("i1").Value = "RUB" Then
        NumFormat = "#,##0 [$?-419];-#,##0 [$?-419]"
     End If


    ' set formatting to look for
    With Application.FindFormat
        .NumberFormat = OldFormat
    End With
    ' set formatting that should be applied instead
    With Application.ReplaceFormat
'        .Font.Bold = False
        .NumberFormat = NumFormat
'        .Font.Size = 8
    End With
     ActiveSheet.Cells.Replace What:="", Replacement:="", _
        SearchFormat:=True, ReplaceFormat:=True

End Sub
'Dim oRange As Range
Название: Re: Финансовый символ рубля в VBA
Отправлено: cheshiki1 от 29.02.2016, 09:48
NumFormat = "#,##0 [$?-419];-#,##0 [$?-419]" у вас вопросительный знак в коде
NumFormat = "[$ˆ-409]#,##0_;-[$ˆ-409]#,##0"значка евро вообще не вижу.
NumFormat = "#,##0 [$р.-419];-#,##0 [$р.-419]"
NumFormat = "[$€-409]#,##0_;-[$€-409]#,##0"

или файл покажите.
Название: Re: Финансовый символ рубля в VBA
Отправлено: oreman от 29.02.2016, 10:23
кнопка цитирования не для ответа [МОДЕРАТОР]

Да и так пробовал выдает ошибку.
Название: Re: Финансовый символ рубля в VBA
Отправлено: cheshiki1 от 29.02.2016, 11:37
не корректно задан формат
If Worksheets("DD").Range("I1").Value = "EUR" Then
        NumFormat = "_-[$€-2] * #,##0.00_-;-[$€-2] * #,##0.00_-"
    ElseIf Worksheets("DD").Range("I1").Value = "USD" Then
        NumFormat = "_-[$$-409]* #,##0.00_ ;_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "
    ElseIf Worksheets("DD").Range("i1").Value = "RUB" Then
        NumFormat = "_-* #,##0.00[$р.-419]_-;-* #,##0.00[$р.-419]_-;_-* ""-""??[$р.-419]_-;_-@_-"
    End If

это стандартные форматы. запишите ваш формат макрорекордером и полученный формат в коде перенесите в ваш.
Название: Re: Финансовый символ рубля в VBA
Отправлено: oreman от 29.02.2016, 12:15
Хорошо, попробую.
Спасибо.
Отпишусь
Название: Re: Финансовый символ рубля в VBA
Отправлено: oreman от 02.03.2016, 01:25
нашел
вот такif Worksheets("DD").Range("i1").Value = "RUB" Then
        NumFormat = "$#,##0_);($#,##0)"'[Red]
     End If
Спасибо
Название: Re: Финансовый символ рубля в VBA
Отправлено: vikttur от 02.03.2016, 01:35
Для оформления кода в сообщении служит кнопка "#"
Если нужно, писать коментарии, а не выделять цветом.