Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 基于背景色的Excel公式单元格_Vba_Excel_Excel Formula_Formulas - Fatal编程技术网

Vba 基于背景色的Excel公式单元格

Vba 基于背景色的Excel公式单元格,vba,excel,excel-formula,formulas,Vba,Excel,Excel Formula,Formulas,我需要EXCEL中的一个公式,在单元格背景为红色的单元格旁边的单元格中放置一个数字1。见下面的例子 如果没有VBA,这一切都可能吗?打开VBA编辑器并添加新模块。要执行此操作,请转到Developer选项卡,然后单击Visual Basic。如果功能区上没有“开发人员”选项卡,则需要添加它(进行快速谷歌搜索)。打开VBA编辑器后,右键单击左侧有工作簿名称的VBA项目并插入模块 将以下代码放入新模块中: Function IsRed(rng As Range) As Integer Is

我需要EXCEL中的一个公式,在单元格背景为红色的单元格旁边的单元格中放置一个数字1。见下面的例子


如果没有VBA,这一切都可能吗?

打开VBA编辑器并添加新模块。要执行此操作,请转到
Developer
选项卡,然后单击
Visual Basic
。如果功能区上没有“开发人员”选项卡,则需要添加它(进行快速谷歌搜索)。打开VBA编辑器后,右键单击左侧有工作簿名称的VBA项目并插入模块

将以下代码放入新模块中:

Function IsRed(rng As Range) As Integer
    IsRed = (rng.Interior.Color = vbRed) * -1
End Function
然后可以使用公式
=IsRed(A1)
确定
A1
是否有红色背景


注意:这在标准颜色中使用默认的红色

这可以通过
名称管理器来完成
这可以通过按Ctrl+F3来访问

您需要创建一个命名引用(我称之为“颜色”),并让它引用公式栏中的
=GET.CELL(63,OFFSET(INDIRECT(“RC”,FALSE),0,-1))

现在,您可以使用右侧的1个单元格来确定单元格的颜色索引编号:

因此,由于红色是其旁边单元格中的颜色索引3,您可以应用以下公式:


=IF(color=3,1,0)

您可以在不使用VBA的情况下使用自动过滤器手动实现:

  • 确保在带有颜色的列上方以及要放置值1的列上方有标题

  • 添加自动筛选(选择两列,单击功能区“数据”选项卡上的“筛选”按钮)

  • 单击“颜色”列上的下拉过滤器,然后单击“颜色过滤器”,选择红色

  • 在第二列中,在每个可见单元格中输入1。(在第一个单元格中输入1,然后填充。或者,选择所有单元格,键入1,然后按ctrl-Enter键)


  • 没有VBA是不可能的。非常简单的VBA。。。你的选择你能用VBA给我答案吗?代码放在哪里?非常感谢!是的,很简单!