Я создаю частную программу Excel, которая имеет несколько ячеек в разных форматах валют в книге.
Я хочу изменить все ячейки валюты в рабочей книге с одной валюты на выбранную валюту.
Этот процесс должен произойти быстро и эффективно.
Есть идеи?
Я смотрел несколько тем и не повезло. Я не пытаюсь найти какие-либо темы, которые могут быстро изменить символ валюты каждой ячейки валюты.
Вот ссылки на некоторые сайты, которые я пробовал:
- https://www.pcreview.co.uk/threads/vba-code-to-change-currency-format.3861711/
- https://social.msdn.microsoft.com/Forums/office/en-US/5828423e-96dd-4cae-8404-7d5d8adb328c/finding-all-currency-formatted-cells-and-change-the-currency-symbol?forum=exceldev
- https://www.reddit.com/r/excel/comments/4dcha1/i_need_a_way_to_change_all_currency_cells_across/
- https://www.ozgrid.com/forum/forum/help-forums/excel-general/67104-change-currency-symbol-from-list?t=77206
- https://chandoo.org/forum/threads/how-to-change-the-currency-symbol-dynamically-in-excel.7673/
- https://contexturesblog.com/archives/2010/06/23/conditional-formatting-for-currency-symbol/
Я не включил все темы, на которые смотрел ранее.
Мне просто нужно что-то быстрое и эффективное.
КОД:
Dim cur As Range
Set cur = Range("e12")
If Not Application.Intersect(cur, Range(Target.Address)) _
Is Nothing Then
If cur = "Dollar" Then
If Sheets("Summary").Range("e15").NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ " Then
Application.FindFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Application.ReplaceFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" Then
Application.FindFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Application.ReplaceFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End If
ElseIf cur = "Euro" Then
If Sheets("Summary").Range("e15").NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ " Then
Application.FindFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" Then
Application.FindFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End If
ElseIf cur = "Pound" Then
'dollar to dirham
If Sheets("Summary").Range("e15").NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ " Then
Application.FindFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Application.ReplaceFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" Then
Application.FindFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Application.ReplaceFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End If
ElseIf cur = "Dirham" Then
'dollar to dirham
If Sheets("Summary").Range("e15").NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ " Then
Application.FindFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" Then
Application.FindFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Application.ReplaceFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End If
ElseIf cur = "Rand" Then
If Sheets("Summary").Range("e15").NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ " Then
Application.FindFormat.NumberFormat = _
"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]* ""-""??_ ;_-@_ "
Application.ReplaceFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$€-de-DE]_-;-* #,##0.00 [$€-de-DE]_-;_-* ""-""?? [$€-de-DE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-[$£-en-GB]* #,##0.00_-;-[$£-en-GB]* #,##0.00_-;_-[$£-en-GB]* ""-""??_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-" Then
Application.FindFormat.NumberFormat = _
"_-* #,##0.00 [$?.?.?-ar-AE]_-;-* #,##0.00 [$?.?.?-ar-AE]_-;_-* ""-""?? [$?.?.?-ar-AE]_-;_-@_-"
Application.ReplaceFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
ElseIf Sheets("Summary").Range("e15").NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" Then
Application.FindFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Application.ReplaceFormat.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End If
'
'
'
'
End If
End If