, если вы хотите придерживаться Characters
объекта, вы должны:
использования Name
собственности, а не FontStyle
один
установить свой параметр Start
до последнего символа текста диапазона, а второй к последнему один
так что вы можете кодировать как следующим образом:
Sub main()
With Range("G1") '<--| change this to any valid Range reference
.Value = mOhms(24, 1) '<--| set the referenced range value
FormatOhm .Cells '<--| format the referenced range value last character
End With
End Sub
Function mOhms(Current, Voltage)
mOhms = Format((Voltage/Current) * 1000, "00.00 m") & Chr(87)
End Function
Sub FormatOhm(rng As Range)
With rng
.Characters(Start:=Len(.Value), Length:=1).Font.name = "Symbol"
End With
End Sub
возможное усиление, которое может быть обращение с «W» фактической позиции символа в строке, если это не всегда быть последним символом
, то вы можете добавить следующую функцию:
Function GetCharacter(rng As Range, char As String) As Long
Dim i As Long
With rng
For i = 1 To .Characters.Count
If .Characters(i, 1).Text = char Then
GetCharacter = i
Exit For
End If
Next i
End With
End Function
, которая возвращает Long
с переданной позицией символа внутри переданного значения диапазона или 0
, если совпадение не произошло
в этом случае вам придется немного изменить FormatOhm()
функции ч пр это обрабатывать фактическое положение символов:
Sub FormatOhm(rng As Range, iChar As Long)
If iChar = 0 Then Exit Sub '<--| exit if no character matching occurred
With rng
.Characters(Start:=iChar, Length:=1).Font.name = "Symbol"
End With
End Sub
и ваш «основной» код будет затем получить:
Sub main()
With Range("G1") '<--| change this to any valid Range reference
.Value = mOhms(24, 1) '<--| set the referenced range value
FormatOhm .Cells, GetCharacter(.Cells, "W") '<--| format the referenced range value character corresponding to "W", if any
End With
End Sub
конечно, что выше может быть еще как улучшить и сделать более надежными, например, обработка char
длина параметра в GetCharacter()
и, соответственно, в FormatOhm()
Damn вы @Captain сварливый, почему я не думал об этом LOL Потрясающие работы спасибо – rellik