gpt4 book ai didi

excel - 突出显示所选内容中包含带有常量的公式的单元格

转载 作者:行者123 更新时间:2023-12-02 22:55:47 25 4
gpt4 key购买 nike

我正在 Excel 2007 中制定预算。它是由其他人编写的,包含许多工作表和许多公式。我试图通过创建一个输入工作表来提高电子表格的效率,在该工作表中输入所有/大多数常量。为了帮助完成此过程,我希望能够突出显示包含常量的所有公式,并突出显示我选择的所有常量(不在公式中)。或者,如果更简单,则相反,突出显示我选择的所有不包含常量的公式。我主要处理数字,而不是文本。

以下是带有常量和仅常量的公式(=)示例:

  1. =82000-50000
  2. =$A$2-50000
  3. =A2-50000
  4. =F133***.05**
  5. 50000

以下是不包含常量的公式 (=) 的示例:

  1. =SUM(E8:P8)
  2. =$C$51*'服务详情'!$E$181
  3. =K152

我能找到的最接近我的问题的答案是:How to determine if a cell formula contains Constants? 。但我相信这篇文章专门针对在公式中查找引文,正如 Siddharth Rout 在他的最后评论中所澄清的那样。

任何帮助将不胜感激。谢谢。 (这是我的第一篇文章,希望我的格式正确。提前道歉)

最佳答案

您可以使用 VBA 中的 SPLIT 函数来解析公式。例如。下面的代码适用于您给出的示例。如果公式包含常量,则返回 TRUE;如果不是公式,则返回 N/A;否则返回 FALSE。

可能您必须进行一些调整,以便它在所有情况下都有效,但这是一个很好的起点。

Function HasConstant(r As Range) As Variant

Application.Volatile

Dim formula As String
Dim delimiters() As String
Dim delimiter As Variant
Dim Components() As String
Dim component As Variant
Dim chars As Integer

delimiters() = Split("+ - * / = & ( ) ,")

If r.HasFormula Then

formula = Right(r.formula, Len(r.formula) - 1)

Do Until formula = ""

chars = Len(formula)
component = formula

For Each delimiter In delimiters

Components = Split(formula, delimiter)

If Len(Components(0)) < chars And Len(Components(0)) > 0 Then
component = Components(0)
chars = Len(component)
End If

Next

If IsNumeric(Replace(component, ".", Application.International(xlDecimalSeparator))) Then 'IsNumeric(component)
HasConstant = True
Exit Function
ElseIf Left(CStr(component), 1) = Chr(34) And Right(CStr(component), 1) = Chr(34) Then
HasConstant = True
Exit Function
End If

If chars < Len(formula) Then
formula = Right(formula, Len(formula) - chars - 1)
Else
formula = ""
End If

Loop

Else

HasConstant = CVErr(xlErrNA)
Exit Function

End If

HasConstant = False

End Function

示例:

enter image description here

关于excel - 突出显示所选内容中包含带有常量的公式的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28329129/

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