Заменить текстовое поле ввода указанным c числом - PullRequest
1 голос
/ 03 февраля 2020

В моей пользовательской форме пользователи могут вводить числа в текстовое поле (максимум 2).

Затем число копируется на листе.

Я пытаюсь ввести любое число, введенное в это текстовое поле, для копирования, но с номером 6 в конце.

Если пользователь вводит «.14»; затем на листе мне нужно увидеть «.16». Если пользователь вводит «.45»; затем на листе мне нужно увидеть «.46». И так далее.

Единственное исключение : если пользователь вводит «6» в текстовое поле, то на рабочем листе мне нужно ТОЛЬКО увидеть » .6 ", а не" .66 ". (эта проблема была исправлена ​​благодаря полученному ранее ответу: VBA, чтобы игнорировать форматирование ячеек при добавлении указанного c числа с использованием пользовательской формы )

Я использовал форматирование ячеек и ввел ' '.06' 'In' Type '. Я думал, что это сработало, но затем, когда я ввожу, скажем, «.43» в пользовательской форме, число, которое копируется в ячейку, не «.46», как ожидалось, а «.56».

Не знаю почему.

РЕДАКТИРОВАТЬ:

Я пробовал это, но это не работает:

Sub ReplaceLastDigit()
    Dim r As Range
    Application.ScreenUpdating = False
    For Each r In Range("C4", Range("C" & Rows.Count).End(xlUp))
        If IsNumeric(r) And Len(r) > 1 Then
            r = Left(r, Len(r) - 1) & "6"
        End If
    Next r
    Application.ScreenUpdating = True
End Sub

РЕДАКТИРОВАТЬ 2:

Все работает, кроме одной вещи. Когда это только ".6", это не добавляет ".66" (отлично), но это добавляет ноль. Итак, я вижу «.60». Это форматирование?

Это код:

If Left(TextBox3.Text, 1) <> 6 Then
    Sheets("Sheet3").Range("C4").Select
    Selection.Borders.Weight = xlThin
    ActiveCell.Value = "." & Left(TextBox3.Text, 1) & 6
Else
    Sheets("Sheet3").Range("C4").Select
    Selection.Borders.Weight = xlThin
    ActiveCell.Value = ".6"
End If

1 Ответ

1 голос
/ 03 февраля 2020

Вот исправление моего кода, которое заставило его работать:

If Left(TextBox3.Text, 1) <> 6 Then
    Sheets("Sheet3").Range("C4").NumberFormat = "@"
    Sheets("Sheet3").Range("C4").Select
    Selection.Borders.Weight = xlThin
    ActiveCell.Value = "." & Left(TextBox3.Text, 1) & 6
Else
    Sheets("Sheet3").Range("C4").NumberFormat = "@"
    Sheets("Sheet3").Range("C4").Select
    Selection.Borders.Weight = xlThin
    ActiveCell.Value = ".6"
End If


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