在 Excel 中禁用非标准本地格式

Disable non-standard local formatting in Excel

我只是花了一天的时间来弄清楚为什么公式没有按预期工作。我试图创建一个 table 从外部源获取数据。

收集数据 X=周期(文本),Y=代码(数字),Z=数量(当前) 第一行 =Y,第一列 = Y,数据 = Z 数据按期间和代码收集。如果在范围内找不到代码,代码将添加到第一行的下一个可用单元格中。

我想将代码显示为 3 位格式,因此我格式化了包含代码 (VBA) 的范围。Numformat="000" 我想将代码显示为 3 位固定代码,因此我应用了 VBA 指令将范围格式化为 .NumberFormat = "000"。 导入新的一行数据时,检查代码是否已经存在于table中。如果不是,则将代码添加到第一行的下一个可用空白单元格中。以下函数用于此目的:

Public Function SearchValCol(lngSearch) As Long

    'Search a a specific value in a column and return the column number if found.

    Dim Rng As Range
    With ws_per_tot.Range("1:1")
        Set Rng = .Find( _
            What:=lngSearch, _
            After:=.Cells(.Cells.Count), _
            LookIn:=xlValues, _
            Lookat:=xlWhole, _
            searchorder:=xlByColumns, _
            SearchDirection:=xlNext, _
            MatchCase:=False, _
            SearchFormat:=False)
    End With

    If Not Rng Is Nothing Then
        SearchValCol = Rng.Column
    End If

End Function

现在,将单元格格式化为“000”时会发生一些奇怪的事情。当单元格格式为 "standard" 时,会找到代码,当格式为“000”时,则不会。此外,如果应用格式“000”,Excel 表示使用 "special formatting"

我了解到在格式化单元格中查找值时存在问题,并且我认为这也引起了我今天的烦恼。我强烈希望禁用特殊的位置格式。我将使用这些的机会是 0.0001%。有人有想法吗?

艺术

没有很好的记录,但据我观察,关于 LookIn 参数,xlValues 检查显示的内容,而 xlFormulas 检查内容公式栏。

因此,如果您更改为 LookIn:=xlFormulas,无论单元格的格式如何,您都应该能够执行您的 .Find

我不知道为什么输入 000 格式会导致格式单元格对话框 select 台湾特殊格式。我认为这是台湾的一种特殊格式。在 Excel 中似乎发生了一些变化,也许是一个错误,如果您输入一些与其他语言环境中的特殊格式相对应的数字,“格式单元格”对话框将切换到该格式。

我希望他们能修好它。在此之前,如果有问题,您可以使用区域特定格式。例如,在美国,您可以使用 [$-en-US]000 而不是普通的 000.