我的电子表格已锁定,以便用户可以编辑值,但不能更改单元格的格式.单元格具有"常规"类型,但有数据验证以确保输入是数字.
尽管存在锁定,但可以通过输入特定值来更改单元格的格式.例如,输入4%会将格式更改为百分比,输入£4会将类型更改为货币等.
我想防止这种情况,因为a)单元格的存储值可能已经改变,例如0.04而不是4和b)现在用户无法改变格式.
我可以通过将单元格类型设置为数字而不是一般来防止这种情况.然而,这也是不可取的,因为它将我与显示固定数量的小数位联系起来.我希望'4'和'4.256'都显示为这样,如果没有向前者添加尾随零(4.00)或舍入后者(4.26),似乎没有办法做到这一点.
请有人告诉我如何防止自动格式化更改,或者如何设置一个能够满足我想要的数字格式.
在工作表事件处理中使用此宏:
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)