Excel单元格中如何强制输入整数Ex
有两个方法可以解决你遇到的问题:
法一:利用VBA限制单元格数据录入
示例如附件“Sheet1”中“B列”及“D6:F10”所示,录入数值后会自动四舍五入
具体操作方法是在“Sheet1”标签上右击,选择“查看代码”,进入VBE后粘贴如下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim x%, y%
x = Target。 Row
y = Target。Column
If y = 2 Then '定义第2列,即B列
If Target <> Fix(Target) Then T...全部
有两个方法可以解决你遇到的问题:
法一:利用VBA限制单元格数据录入
示例如附件“Sheet1”中“B列”及“D6:F10”所示,录入数值后会自动四舍五入
具体操作方法是在“Sheet1”标签上右击,选择“查看代码”,进入VBE后粘贴如下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim x%, y%
x = Target。
Row
y = Target。Column
If y = 2 Then '定义第2列,即B列
If Target <> Fix(Target) Then Target = Round(Target, 0)
End If
If (x >= 6 And x = 4 And y Fix(Target) Then Target = Round(Target, 0)
End If
End Sub
通过这种方法,可以把工作表中要限制的单元格及单元格区域描述出来,不管是手工录入还是复制粘贴,都会强制更正为整数。
缺点:只能对单一单元格变动时才能有效,如果复制多个单元格的数据至限制区域,则无效
法二:利用VBA来更正已录入的数据
ALT+F11,打开VBE工作环境,点菜单上的“插入”-》“模块”,双击左侧刚插入的“模块1”,在右侧的代码窗口中粘贴如下代码:
Sub 转换整数()
On Error Resume Next
Dim myRange As Range, k As Range
Set myRange = Application。
InputBox(prompt:="请选择要转换的单元格:", Type:=8)
For Each k In myRange
k。Value = Round(k。Value, 0)
Next
End Sub
使用时,按ALT+F8,运行“转换整数()”宏,会有一个输入框来提示你选择要转换的单元格或者单元格区域,可以是不连续的单元格区域,选择时按住“Ctrl”即可,选择完成后,点确定即可完成转换。
优点:可以完成不连续的多个单元格或者单元区域的转换操作,比法一要实用
缺点:如果不连续的单元格或者单元格区域太多太分散的话,选择他们是一件很痛苦的事。
如果你不介意的话,可以把你的附件传上来,看看有没有什么规律可循,这样用VBA处理起来会事半功倍,当然,你也可以在上面两种思路的启发下自己研究出理可行便捷的方案,一切以效率为先嘛。
祝好~~。收起