В моей пользовательской форме пользователи могут вводить числа в текстовое поле (максимум 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