Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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_Vba_Excel - Fatal编程技术网

计算单元格值并存储在变量中,以便以后使用vba

计算单元格值并存储在变量中,以便以后使用vba,vba,excel,Vba,Excel,如果有人能给我指出正确的方向,我不知道如何最好地解决这个问题,这样它就能解决我的问题,并做我需要它做的事情 我有一个excel文档,有三列,分别保存绿色、琥珀色和红色的数据。对于每一行,它们可能具有相同或不同的值,每一行的总体值为:-如果三个值中的一个或多个为红色,则总体值为红色,如果没有红色,且一个或多个值为琥珀色,则总体值为琥珀色,如果这两个值都不存在,则总体值为绿色。我需要计算每种颜色的总值的数量,但在特定的单元格范围内。我有一些脚本,它将查找我需要搜索的范围的第一行编号和最后一行编号:-

如果有人能给我指出正确的方向,我不知道如何最好地解决这个问题,这样它就能解决我的问题,并做我需要它做的事情

我有一个excel文档,有三列,分别保存绿色、琥珀色和红色的数据。对于每一行,它们可能具有相同或不同的值,每一行的总体值为:-如果三个值中的一个或多个为红色,则总体值为红色,如果没有红色,且一个或多个值为琥珀色,则总体值为琥珀色,如果这两个值都不存在,则总体值为绿色。我需要计算每种颜色的总值的数量,但在特定的单元格范围内。我有一些脚本,它将查找我需要搜索的范围的第一行编号和最后一行编号:-

mediumStartRow = Range("H:H").Find(what:="Medium", after:=Range("H21")).Row
mediumEndRow = Range("H:H").Find(what:="Medium", after:=Range("H21"), searchdirection:=xlPrevious).Row
我不知道为什么要解决这个问题。谁能给我指一下正确的方向吗

我试过这样的方法:-

With Range("AS:AU" & mediumStartRow("AS:AU" & mediumEndRow))
     .Formula = "=IF(COUNTIF(Range"=Red")>0,"Red",IF(COUNTIF(Range,"=Amber")>0,"Amber","Green"))"
End With
这是excel文档的一个示例


在一些变体中使用此选项,以获得您想要的内容

 =IF(COUNTIF(C:C, "red")>2, "red", IF(COUNTIF(C:C, "amber")>2, "amber", "green"))

在一些变体中使用此选项,以获得所需内容

 =IF(COUNTIF(C:C, "red")>2, "red", IF(COUNTIF(C:C, "amber")>2, "amber", "green"))

我得到一个编译错误,它不喜欢(AS:AU,“red”)中的“red”,它似乎也不喜欢Range(“AS:AU”和mediumStartRow(“AS:AU”和mediumEndRow))所说的预期数组@Doug CoatsWell我认为,如果要将其用作具有范围的工作表函数,则必须引用vba术语中的范围,而不是工作表格式术语中的范围。类似于此应用程序。WorksheetFunction.Average(工作表(“Sheet1”).Range(“C1:C8000”)。我得到了一个编译错误,它与中的“red”(as:AU,“red”)不同它似乎也不喜欢Range(“AS:AU”和mediumStartRow(“AS:AU”和mediumEndRow))所说的预期数组@Doug CoatsWell我认为,如果要将其用作具有范围的工作表函数,则必须引用vba术语中的范围,而不是工作表格式术语中的范围。类似于此应用程序。工作表函数。平均值(工作表(“Sheet1”)。范围(“C1:C8000”))