Первый вопрос: я хочу запускать макрос автоматически при изменении определенного значения ячейки, однако при изменении значения ячейки он не запускается.Единственный способ, которым он запускается - это когда я захожу в раздел «Макросы» на вкладке разработчика и вручную запускаю макрос.
Второй вопрос: у меня есть ячейка, отформатированная как текст и отображающая «somenumber% / someothernumber»% ", и я хочу, чтобы отрицательные значения были окрашены в красный цвет, а положительные значения - в зеленый.Проблема в том, что он регистрирует только первое значение, поэтому, если оно положительное, все значения ячеек отображаются зеленым, и наоборот - отрицательным.Вот конкретное форматирование текста: = TEXT(AS4,"[>0]+#,###0.000%;[<0]-#,###0.000%")&" "&"/"&" "&TEXT(AS6,"[>0]+#,###0.000%;[<0]-#,###0.000%")
.
Вот моя попытка обоих решений:
Sub TextColorChange()
Dim xWs As Worksheet
Set xWs = Sheets("Trading Statistics")
For Row = 10 To 13
vall = xWs.Cells(Row, 51).Value
CheckPlus = InStr(1, vall, "+")
CheckMinus = InStr(1, vall, "-")
CheckDash = InStr(1, vall, "/")
part = Len(vall) - CheckDash + 1
If CheckMinus <> 0 Then
xWs.Cells(Row, 51).Characters(Start:=CheckMinus, Length:=part).Font.ColorIndex = 3
End If
If CheckPlus <> 0 Then
xWs.Cells(Row, 51).Characters(Start:=CheckPlus, Length:=part).Font.ColorIndex = 10
End If
Next Row
End Sub
--------------------------------
Private Sub Worksheet_Calculate()
Dim Xrg As Range
Set Xrg = Me.Range("AY6")
If Not Intersect(Xrg, Me.Range("AY6")) Is Nothing Then
Call TextColorChange
End If
End Sub