EXCEL>如何刷新单元格以应用新的单元格格式?

时间:2017-11-23 12:15:31

标签: excel vba excel-vba

我在单元格中有一个值,比如123456789.12345。默认情况下,excel将其显示为123456789.1。我需要在逗号后面看到所有数字,因此我将单元格格式更改为自定义> @

要应用此更改,我需要刷新单元格,例如选择它并按F2,然后按Enter键。但是如何对列或范围应用此刷新?

请尽可能没有VBA。

4 个答案:

答案 0 :(得分:2)

  • 按照您希望的方式格式化第一个单元格。
  • 使用正确的格式复制单元格。
  • 选择其他单元格。
  • 鼠标右键 - >选择性粘贴(或 Ctrl + Alt + V )。
  • 选择格式RadioBox。
  • 点击确定按钮。
  • Enter

答案 1 :(得分:2)

您可以加快执行此操作的过程:

没有VBA选项

选择列并转到数据功能区,然后点击文字到列

enter image description here

选择“分隔”,然后单击“下一步”。

enter image description here

取消选中所有分隔符,然后单击“下一步”。

enter image description here

选择文本选项,然后按完成

enter image description here

所有单元格的数字格式都将更新。

这个技巧有点像黑客,但它确实有效。它的作用是从每一行获取所有值,然后自动将它们重新输入到单元格中。出于这个原因,这个技巧不适用于公式的单元格。如果您有公式,按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