繁体   English   中英

Excel公式检查单元格内容

Excel formula to check cell contents

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试在运行时(huzzah)中为外接程序(double huzzah)创建一些条件格式,并且发现,显然,某些功能无法像正常工作表中那样使用。 (尝试创建引用我可以在单元格中调用的VBA函数的CF时,我只是收到一个无效的过程调用错误5,即使它位于加载项中而不是工作簿中;我也可以使用内置的我在这里找到的最清楚的确认是在这里 ,但它并没有真正解释问题所在; 那是深奥的部分,很想听听我对此的期望。

遇到的难题是:我是否可以完全避免使用VBA,并使用一系列仅限Excel的内置函数来验证给定单元格是否包含常数(即,用户输入的值),公式(例如某种计算,逻辑运算等-大部分以=开头,或链接(即对另一个工作表或另一个工作簿中单元格的引用)? 我知道Excel可以一触即发。 见证GoTo / Special的用途和速度。 但是该怎么办呢?

在此先感谢您的帮助。

3 个回复

针对Excel 2013更新:

对于Office版本2013和更高版本,可以使用ISFORMULA¹功能。 将此与NOT函数, AND函数以及COUNTBLANKISBLANKLEN函数结合使用,可以产生确定单元格是否包含常数的公式。

E2:F2中的标准公式为

=ISFORMULA(D2)
=AND(NOT(ISFORMULA(D2)), LEN(D2))

ISFORMULA_update

如果需要有关单元格值性质的更多信息,则可以使用TYPE函数确定单元格内容是数字,文本,布尔值,错误还是数组。

当一起使用时,此处讨论的本机工作表函数可以重现VBA的Range.SpecialCells方法及其xlCellTypeConstantsxlCellTypeFormulas xlCellType枚举可用的结果。


¹ISFORMULA函数是Excel 2013引入的。在早期版本中不可用。

不确定这是否是您想要的,但似乎可以满足您的要求,至少其中一些要求。

http://www.ozgrid.com/VBA/special-cells.htm

这是range.specialcells方法。

它返回一个仅包含常量或仅包含公式等的范围。

下面显示了如何使用此代码的示例:

Sub CheckForConstants()
    Dim x As Range
    Set x = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
    MsgBox "address of cells that contain numbers only is " & x.Address
    Set x = Selection.SpecialCells(xlCellTypeConstants)
    MsgBox "address of cells that contain constant of any type is " & x.Address
End Sub

您选择一个范围,然后执行此宏,它将返回满足要求的那些单元格的地址。

第一个x查找仅包含数字的单元格。 第二个x查找包含任何常量的单元格

在这种情况下,范围是选择,但您可以设置为所需的范围,即range(“ a1:b5”)等。

我回到工作表并使用goto特殊方法。

显然,它也使用range.special方法。

我使用了记录宏选项,这就是我得到的。

Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Range("M7").Select
    Selection.SpecialCells(xlCellTypeFormulas, 23).Select
    Range("I6:J16").Select
    Selection.SpecialCells(xlCellTypeConstants, 1).Select
    Range("L9").Select
    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    Sheets("CP").Select
    Application.CutCopyMode = False
    Range("I21").Select
    ActiveSheet.DrawingObjects.Select
    Application.Goto Reference:="GoToSpecialRoutine"

工作表上的goto特殊功能对其某些功能使用了特殊单元格方法。

它还使用其他人。 在最后5行代码中,我更改了工作表,并要求它转到对象。

并不是真的。 它只是选择它们。

工作表CP包含对象,它使用最后3行中的代码选择工作表上的所有对象。

最好查看goto special背后的代码是记录一个宏,然后在工作表中使用goto / special功能。

完成后,停止录制并查看您录制的宏。

我不知道要按单元格类型选择的任何其他功能,但是我只是个新手,因此它很容易出现,因此我不知道。

我认为您不能完全避免使用VBA,但可以创建一个简单的UDF并在Excel中使用它

例如

Function IsFormula(Check_Cell As Range)
  IsFormula = Check_Cell.HasFormula
End Function

Function IsLink(Check_Cell As Range)

  If InStr(1, Check_Cell.Formula, "!", vbTextCompare) Then
   IsLink = Check_Cell.HasFormula
  End If
End Function

如果A1中有一个公式,则= IsFormula(A1)将返回TRUE,否则为FALSE,否则,如果A1中有一个包含“!”的公式,则= IsLink(A1)将返回TRUE。 否则为FALSE

您可以组合这些并创建一个字符串输出“ Formula”,“ Link”,“ Value”

1 excel检查公式上的调用方单元格

我有类似的东西 一月二月 ... 随你: 就是说,每列都是一个月,然后第一行具有月份名称,第二行具有我想要的任何属性的数量(我只是举一个例子)。 我的想法是在每个月下的每个单元格中放置类似的内容:= cellSomething 在单元格中,我应该检查从哪个单元格呼叫,然 ...

2 Excel:单元格内容作为公式要求

我有一个简单的公式= sum(sum(sum(d5 * u300)/ g4)是否可以让该公式查找d的单元格A1、5的a2,u的a3、300的A4、300的A5 g和a6代表4。换句话说,每个公式单元格引用都由其他两个单元格的内容组成。这将在选择过程中用于生成图形表格。 非Excel用户然后可以 ...

3 Excel公式 - 检查单元格是否具有公式

你用什么公式来检查另一个细胞是否有配方? 例如,我有2列,A包含包含公式或值的单元格。 (A列通常包含公式,但其他用户尝试通过直接键入和替换之前的公式来更改其值) 在列BI中,如果列A上的单元格具有公式,则要添加将显示“HasFormula”的公式,如果它包含值,则表示“Plain ...

4 检查Excel中其他单元格的内容

我有一个非常愚蠢的问题,如下图所示,我想检查左侧前3列的内容,如果内容还可以,请在第四栏中显示ok。 唯一的条件是在前2行中显示的条件,因此第一列中的一个非空单元格,其他两个元素为空或相反,右侧的两个不为空,第一列为空。 如何在这里输入图片说明 ...

5 Excel公式:使用单元格内容作为路径

我想用另一个excel文件中的数据评估一个表。 该文件保存在[@Spektrum]列中 没有它看起来像这样(...是已删除的公司路径) 同 我试过了 Excel不只包含公式。 它更改为 结果为#REF! 我想知道如何解决这个问题。 ...

6 使用Excel获取具有公式的单元格的内容

我想在Excel中获取其值是使用公式(= D6 * 0.1236)计算的单元格的内容,并且我正在使用HssfWorkbook并使用getCell()方法获取内容。 但我得到D6 * 0.1236。 我想获取使用此公式而不是公式计算的值。 请为此提出一些解决方案。 下面是获取内容的代码 ...

7 Excel公式检查单元格组合是否重复

我在网络上使用Excel进行工作,该网络不允许我更改电子表格的保护/共享状态,也不允许我将两列中的相邻单元格连接起来。 我认为这是一个网络问题,我不理解,但是我尝试了许多方法来解决问题,但没有任何效果。 除了该问题之外,还应该有一个通用的公式来查找两列中的重复项-因此,如果我有一个姓氏列 ...

9 如何使用公式检查Excel单元格样式?

我对如何在4中用粗体显示一个单独的列有一个问题。让我详细解释一下我使用的是excel win2010。我有4个多重答案的问题,我想用真实答案创建一个单独的列。 真正的答案是大胆的。 在4个答案中,其中一个为粗体,请检查所有4个为粗体的副本,然后复制到正确的答案列中,检查随附的屏幕截图。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM