【问题标题】:How to change the default number format in Excel?如何更改 Excel 中的默认数字格式?
【发布时间】:2017-06-21 15:33:54
【问题描述】:

我一直有这列“通用”类型的字符串整数。每次打开此电子表格时,我都必须将其转换为“数字”类型。但是当我这样做时,它会自动创建两个小数点。例如,它将“12345”更改为“12345.00”。每次都使用“减少小数”有点烦人。有没有办法对默认模式进行两次更改? 1) 始终假设该列具有“数字”类型,而不是“通用”类型 2) 不能有小数点。

【问题讨论】:

  • re: '每次我打开这个电子表格,...' - 你是说即使你改变了数字格式(并保存工作簿)同样工作簿下次打开需要调整数字格式吗?
  • 我一直将大数字粘贴到 Excel 中。我想在千位之间看不到小数位和逗号。是的,我知道如何设置格式,但我想在打开新电子表格时设置格式。我猜从我们在这里看到的情况来看没有选择。我希望看到的是能够覆盖所有数字在第一次输入时开始的“一般”数字格式。

标签: excel


【解决方案1】:

Excel Tips, Learn Excel \ Raghu R

为工作簿设置格式选项

Excel 没有提供很多允许您设置格式的选项 工作簿的默认值。但是,您可以通过以下方式解决此问题 修改空白工作簿中的格式,然后将其另存为 默认模板。

  1. 打开 Excel 到空白工作簿。
  2. 使用所需的所有选项格式化空白文件。例如,设置边距、单元格颜色格式或设置页眉或页脚。确保 删除您在单元格中输入的任何值以测试格式,除非 您希望它们出现在每个空白工作簿中。
  3. 完成更改后,单击“文件”选项卡并选择“另存为”。
  4. 从“文件类型”下拉列表中,选择“Excel 模板 (*.xltx)”并将文件名更改为“Book”。

  5. 将“保存在”位置设置为 XLSTART 文件夹。此文件夹通常位于类似于C:Program Files/Microsoft Office/Office14/XLSTART 的路径中。

    • 找到其位置的最快方法是使用 Visual Basic 编辑器 (VBE) 中的立即窗口,如下所示:
    • Alt+F11 启动 VBE。
    • 如果“立即”窗口不可见,请按 Ctrl+G
    • 在“立即”窗口中,输入 ? application.StartupPath 并按 Enter
    • VBA 将显示 XLStart 的路径。
  6. 点击保存。
  7. 退出并重新打开 Excel。空白工作簿应包含您之前设置的格式。

【讨论】:

  • 微软在这里有一篇非常相似的支持文章support.office.com/en-us/article/…
  • 但是仅在选择该格式时设置默认数字格式呢?例如,让模板以 General 开头以允许多种格式很有用。然后,如果有一组列将是数字、货币或会计,那么使用与 Microsoft 的默认格式不同的格式会很棒。例如,从不显示小数,始终使用逗号分隔符(或欧洲的句点)。有没有办法在 Book.xltx 单元格的直接格式之外设置 那些 默认值?
【解决方案2】:

设置格式如下:

文件保存后,格式将保留。

【讨论】:

  • 我的意思是实际上有多个具有相同格式的电子表格。因此,更改一个电子表格中的格式不会对其他电子表格产生任何影响。很抱歉造成混乱!
  • @JunJang 然后创建某种具有适当格式、列宽的模板电子表格,并重新使用模板作为起点。
【解决方案3】:

尝试以下方法:

右键单击列并单击Format Cells...,然后从Category: 列表中选择Number 并为Decimal places: 指定0

保存文件并重新打开,您应该会看到该列设置为Number

编辑:

如果您想将格式应用于多个 excel 文件,您可以为此编写一个宏:

做一些快速研究,发现了以下 VBA 代码 --- 我不认为这归功于。但是我确实更改了DoWork 方法以添加:.Worksheets(1).Range("A1").NumberFormat = "Number"

Sub ProcessFiles()
    Dim Filename, Pathname As String
    Dim wb As Workbook

    Pathname = ActiveWorkbook.Path & "\Files\"
    Filename = Dir(Pathname & "*.xls")
    Do While Filename <> ""
        Set wb = Workbooks.Open(Pathname & Filename)
        DoWork wb
        wb.Close SaveChanges:=True
        Filename = Dir()
    Loop
End Sub

Sub DoWork(wb As Workbook)
    With wb
        'Do your work here
        .Worksheets(1).Range("A1").NumberFormat = "Number"
    End With
End Sub

【讨论】:

  • 我的意思是实际上有多个具有相同格式的电子表格。因此,更改一个电子表格中的格式不会对其他电子表格产生任何影响。很抱歉造成混乱!
  • @JunJang 如果我理解正确,您是否希望特定列(例如Column G)在 Excel 工作簿中的所有工作表中具有 相同 格式?如果是这样,除非有数十张 100 张纸,否则我仍然会采用建议的解决方案
  • 不,我的意思是有多个工作簿(对不起,我之前的意思是工作簿,而不是工作表。这两个有点混乱)。
【解决方案4】:

写了一个小宏

    Sub PERS_FormatSelectionToNumberNoDecimals()
        Selection.NumberFormat = "0"
    End Sub

...在我的 PERSONAL.XLSB 中。

在我的数据工作簿的 ThisWorkbook 模块(VBA 编辑器)中,我放置了一个函数

    Private Sub Workbook_Activate()
    ' Purpose   :   assign key shortcuts when workbook is activated
        Application.OnKey "^+o", "PERSONAL.XLSB!PERS_FormatSelectionToNumberNoDecimals"
    End Sub

... 为宏分配快捷键 CTRL-SHIFT-O(O 与其他;您可以分配您选择的另一个键)。

=> 每当您需要将范围重新格式化为带 0 位小数的数字时,请选择范围并按快捷键。

为了在切换到另一个工作簿时摆脱键分配,您可以放置​​

    Private Sub Workbook_Deactivate()
    ' Purpose   :   removes key short cut assignments if workbook is deactivated
        Application.OnKey "^+o"
    End Sub

...在我的数据工作簿的 ThisWorkbook 模块(VBA 编辑器)中

【讨论】:

    【解决方案5】:

    当我意识到以下情况时,我认为数字格式卡在日期上并且正在阅读这篇文章以解决问题。

    在我的情况下,将主功能区中的数字格式更改为 General,即下次我打开 Excel(Office 365 订阅版)时,General 格式保持不变!问题解决了。

    Home Ribbon, Number Format screen capture

    【讨论】:

      【解决方案6】:

      如果您想让这些样式仅在您选择它们​​时生效(即,不作为创建新文件时的默认格式),那么您可以这样做的一种方法是在该模板中创建新样式(例如,Book.xltx)。例如,您可以创建一个名为“Currency (0)”的新样式,它等效于正数的样式 $#,##0。因此,要使用所需的格式,您需要更改单元格的 样式,而不是使用 格式控件

      是的,这并不理想(最好能够直接更改 Excel 的默认功能),但它确实有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-02
        • 1970-01-01
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多