Я пытаюсь создать макрос VBA, чтобы помочь мне очистить описания компонентов электроники в ведомости материалов Excel. Удаляет лишние пробелы с помощью Trim и сокращает несколько длинных слов. Однако я не могу понять, как правильно найти / заменить греческий символ, такой как Омега. Кодовые номера символов не работают. Я не уверен, неправильно ли я использую ChrW или в чем проблема.
На другом форуме мне предложили добавить в код MatchByte: = True , но, похоже, это не помогает и не мешает.
Путем долгих экспериментов я нашел решение части этой проблемы. Оказывается, что знак µ - MICRO SIGN (код символа Unicode и ASCII (шестнадцатеричный) 00B5, а также код символа ASCII (десятичный) 181) прекрасно работает, когда вы просто вставляете его символ в код поиска / замены VBA. Затем макрос находит / заменяет его идеально.
Я озадачен относительно того, почему греческие символы mu, omega и rho не работают таким образом.
μ - ГРЕЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО MU (код символа Unicode (hex) 03B C)
Ω - ГРЕЧЕСКИЙ КАПИТАЛЬНЫЙ ПИСЬМО OMEGA (Код символа Unicode (hex) 03A9)
Ω - ЗНАК ОМ ( Код символа Unicode (шестнадцатеричный) 2126)
ρ - ГРЕЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО RHO (Код символа Unicode (шестнадцатеричный) 03C1)
Sub DescriptionFix()
'
' DescriptionFix Macro
' Shortens Description by replacing long words and removes excess spaces from the Description Column
' Select a column or a portion of a column to run this macro on
'
Dim r As Range
With Application.WorksheetFunction
For Each r In Intersect(Selection, ActiveSheet.UsedRange)
r.Value = .Trim(r.Value)
Next r
Selection.Replace What:="RESISTOR", Replacement:="RES", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="ChrW(2126)", Replacement:="OHM", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, MatchByte:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="ChrW(03A9)", Replacement:="OHM", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="TRANSISTOR", Replacement:="TRANS", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="CRYSTAL", Replacement:="XTAL", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="CAPACITOR", Replacement:="CAP", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="µ", Replacement:="u", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="ChrW(03BC)", Replacement:="u", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
MatchByte:=True, ReplaceFormat:=False
Selection.Replace What:="ChrW(03C1)", Replacement:="p", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
MatchByte:=True, ReplaceFormat:=False
Selection.Replace What:="TANTALUM", Replacement:="TANT", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="CERAMIC", Replacement:="CER", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="INDUCTOR", Replacement:="IND", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="FERRITE", Replacement:="FERR", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="GREEN", Replacement:="GRN", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="BLACK", Replacement:="BLK", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="YELLOW", Replacement:="YEL", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="VOLTAGE", Replacement:="VOLT", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="REGULATOR", Replacement:="REG", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="CONNECTOR", Replacement:="CONN", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="TRANSFORMER", Replacement:="XFMR", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
End Sub