防止自动格式从一般更改为例如百分比

Emi*_*y M 6 excel

我的电子表格已锁定,以便用户可以编辑值,但不能更改单元格的格式.单元格具有"常规"类型,但有数据验证以确保输入是数字.

尽管存在锁定,但可以通过输入特定值来更改单元格的格式.例如,输入4%会将格式更改为百分比,输入£4会将类型更改为货币等.

我想防止这种情况,因为a)单元格的存储值可能已经改变,例如0.04而不是4和b)现在用户无法改变格式.

我可以通过将单元格类型设置为数字而不是一般来防止这种情况.然而,这也是不可取的,因为它将我与显示固定数量的小数位联系起来.我希望'4'和'4.256'都显示为这样,如果没有向前者添加尾随零(4.00)或舍入后者(4.26),似乎没有办法做到这一点.

请有人告诉我如何防止自动格式化更改,或者如何设置一个能够满足我想要的数字格式.

Tao*_*que 0

在工作表事件处理中使用此宏:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ChangedCells As Range
Dim NextChangedCell As Range
Dim Temp As String

Set ChangedCells = Intersect(Target, Range("A1:A5")) ' or you can specify any other range to be monitored for changes

If Not ChangedCells Is Nothing Then
Application.EnableEvents = False
For Each NextChangedCell In ChangedCells
    Temp = NextChangedCell.Formula
    NextChangedCell.NumberFormat = "General" ' or you can specify any other format to be forced on cells
    NextChangedCell.Value = Temp
Next NextChangedCell
Application.EnableEvents = True
End If

End Sub
Run Code Online (Sandbox Code Playgroud)