excel - 用特定数字替换文本框输入
问题描述
在我的用户表单中,用户可以在文本框中输入数字(最多 2 个)。
然后将数字复制到工作表中。
我正在尝试在此文本框中输入任何数字以进行复制,但最后是数字 6。
如果用户输入'.14';然后在工作表中,我需要看到“.16”。如果用户输入'.45';然后在工作表中,我需要看到“.46”。等等..
唯一的例外是,如果用户在文本框中输入“6”,那么在工作表中,我只需要看到“.6”,而不是“.66”。(由于之前收到的答案,这个问题得到了解决:VBA to ignore cell formating when added a specific number using a userform)
我使用了单元格格式并在“类型”中输入了“.06”。我认为它有效,但是当我在用户表单中输入“.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
解决方案
这是对我的代码的更正,使其工作:
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
推荐阅读
- ios - 在包标识符中使用两个字符串
- php - 文件名的高熵唯一 ID
- android - 更新firebasex插件后,离子cordova构建android失败
- python - 如何将 JSON 文件用作数组
- android - 我不能在 kotlin 中使用清除或删除功能
- javascript - marklogic javascript json json文档有命名空间吗
- python - Matplotlib 动画未显示使用 gridspec 绘制的图像
- javascript - 当一个对象中有多种数据类型时,如何在javascript中以我需要的格式获取数据?
- ansible - 在我们第一次执行脚本时运行任务,但之后不再执行
- scheme - 如何取消引用方案符号?