Проблема разделителя в формуле списка проверки данных - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь добавить список проверки данных в целевой ячейке на основе целевого значения.Но я думаю, что есть проблема с языком.

Идея состоит в том, чтобы написать желаемое значение в качестве среднего значения, затем [Пробел] и затем количество шагов в каждом направлении.(например, «1,3 2»)

С помощью следующего кода я получаю список, но отформатированный как текст (со знаком периода).Если я удаляю бит «Replace (»), я получаю только целые числа, и если я заменяю запятую с разделителями точкой с запятой, это анархия.

Private str$, i As Integer, qty As Integer, avrg As Double, s As Double
Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Value Like "* *" Then
            qty = Mid(.Value, InStr(1, .Value, " ") + 1, 10)
            avrg = Mid(.Value, 1, InStr(1, .Value, " ") - 1)
            s = avrg - (0.1 * (qty + 1))
            For i = 1 To qty * 2 + 1
                str = str & ", " & Replace(s + (i * 0.1), ",", ".")
            Next
            .Validation.Delete
            .Validation.Add Type:=xlValidateList, Formula1:=str
            .Validation.ShowError = False
            .NumberFormat = _
"[Blue][<" & avrg & "] ""Easy- ""0.0;[Red][>" & avrg & "]""Hard - ""0.0;""Average - ""0.0"
            .Value = avrg
            str = ""
        End If
    End With
End Sub

Возможно ли временно повернуть какой-нибудь перевод-последовательность или что-то

Запятая вручную - это разделитель десятичных точек и точка с запятой для элементов. Я бы написал 1,1; 1,2; 1,3; 1,4; 1,5 в источнике-Box и получить следующий правильный результат в списке:

pos1 1,1

pos2 1,2

pos3 1,3

pos4 1,4

pos5 1,5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...