我在单元格中有一个值,比如123456789.12345
。默认情况下,excel将其显示为123456789.1
。我需要在逗号后面看到所有数字,因此我将单元格格式更改为自定义> @
要应用此更改,我需要刷新单元格,例如选择它并按F2
,然后按Enter键。但是如何对列或范围应用此刷新?
请尽可能没有VBA。
答案 0 :(得分:2)
答案 1 :(得分:2)
您可以加快执行此操作的过程:
没有VBA选项
选择列并转到数据功能区,然后点击文字到列。
选择“分隔”,然后单击“下一步”。
取消选中所有分隔符,然后单击“下一步”。
选择文本选项,然后按完成
所有单元格的数字格式都将更新。
这个技巧有点像黑客,但它确实有效。它的作用是从每一行获取所有值,然后自动将它们重新输入到单元格中。出于这个原因,这个技巧不适用于公式的单元格。如果您有公式,按F9应重新计算工作表并更新数字格式。但根据我的经验,我没有遇到公式问题。
VBA选项
只需使用以下代码创建VBA:
Sub Oval1_Click()
Dim i As Integer
i = 1
Do Until Cells(i, 1) = 0
Cells(i, 1).NumberFormat = "@"
Cells(i, 1).Select
SendKeys "{F2}", True
SendKeys "{ENTER}", True
i = i + 1
Loop
End Sub
请记住,要实现这一点,您需要一个"按钮"使用名称Oval1_click,或者只是将代码添加到您创建的按钮中。
说明:!
1:首先我们按下按钮
启动代码 Sub Oval1_Click()
然后我们声明一个将用作单元格行的增量值的变量。
Dim i As Integer
i = 1
我们在第1行第1列(a)中启动循环,只有当值不等于0时,才会在A1中进行转换。
Do Until Cells(i, 1) = 0
我们将@格式分配给选定的行(A1)
Cells(i, 1).NumberFormat = "@"
我们选择,按F2,然后按Enter,进入该行(A1)
Cells(i, 1).Select
SendKeys "{F2}", True
SendKeys "{ENTER}", True
我们增加i值,以便它可以改变行
i = i + 1
如果我们到达该列中的空单元格,我们完成循环和代码
Loop
End Sub
就是这样。
答案 2 :(得分:1)
那应刷新选定的单元格并应用新格式。
答案 3 :(得分:0)
Sub ForceAsText()
Dim cel As Range
Dim selectedRange As Range
Set selectedRange = Application.Selection
For Each MyCell In selectedRange.Cells
MyCell.NumberFormat = "@"
If MyCell.HasFormula Then
Dim Val As String
Val = MyCell.Formula
MyCell.Value = Val
End If
Next MyCell
End Sub