gpt4 book ai didi

excel - 查找包含前面有 = 符号的常量的单元格的代码

转载 作者:行者123 更新时间:2023-12-04 19:57:07 25 4
gpt4 key购买 nike

任何有关 Excel vba 代码的建议,这些代码将识别包含值但没有函数的单元格。问题是我正在搜索的值前面有一个“=”符号。
我经常需要查看其他人的财务电子表格,并且知道哪些单元格包含实际输入(假设)是关键。我可以很容易地找到只有一个恒定输入的单元格,只需简单的:

Selection.SpecialCells(xlCellTypeConstants, 1).Select
问题是一些用户习惯于输入前面带有 = 符号的数字,这些单元格被 excel 视为包含函数。我知道我也可以搜索具有函数的单元格,但我只想找到实际上没有函数但输入以 = 符号开头的单元格。
换句话说,用户输入=1000,而不是在单元格中输入1000。我只想强调这些类型的单元格。
关于如何识别这些细胞的任何建议?

最佳答案

正是这个“问题是一些用户习惯于输入前面带有 = 符号的数字”是你的问题。停止人们有这种习惯!

  • 首先,这是一个愚蠢的习惯,因为它会减慢一切,因为 Excel 必须评估那些包含类似 =1000 的单元格。找出值和
  • 其次,这些单元格实际上包含一个公式而不是一个值。所以没有内置的方法来区分它们。

  • 那些人只是用错了Excel。
    我只能想到一种解决方法,那就是遍历所有包含公式的单元格,删除 =签名并检查“公式”的其余部分是否为数字 IsNumeric() .如果是这样,用它的值替换公式。
    例如,如果单元格是 =1000然后 1000是数字,它将用值 1000 替换它.如果单元格是 =1000*2然后 1000*2不是数字,因为它包含 *签名,它将保留公式。
    请注意,此解决方法只是对抗症状,而不是解决根本原因。根本原因是那些使用Excel的人错误!你应该总是解决原因而不是对抗症状。
    Option Explicit

    Public Sub ReplaceFormluasWithValueIfNoCalculation()
    Dim AllCellsWithFormulas As Range
    On Error Resume Next ' next line errors if no formulas are found, so hide errors
    Set AllCellsWithFormulas = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
    On Error GoTo 0 ' re-enable error reporting

    If Not AllCellsWithFormulas Is Nothing Then
    Dim Cell As Variant
    For Each Cell In AllCellsWithFormulas.Cells ' loop through all formulas
    Dim ExtractedValue As String ' extract formula right of the `=` sign
    ExtractedValue = Right$(Cell.Formula, Len(Cell.Formula) - 1)
    ' check if extracted formula is only a value, if so replace formula with value
    If IsNumeric(ExtractedValue) Then
    Cell.Value = ExtractedValue
    End If
    Next Cell
    End If
    End Sub
    连上面的都可以做到,我建议修复根本原因。

    关于excel - 查找包含前面有 = 符号的常量的单元格的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71080408/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com