将定义的范围应用于WorksheetFunction

时间:2016-08-05 10:53:52

标签: excel vba function excel-vba

需要添加一个if语句来控制我在代码中循环的内容,所以从这一行开始:

If Application.WorksheetFunction.Or(checkrange.value = 0, checkrange.value = "") = "False" Then

我已将checkrange定义为以下

Set checkrange = finwb.Sheets("Strt_Dash_Final").Range(Cells((cfcll.Row + 1), q), Cells((cfcll.Row + (cfcll.value - 2)), q))

我的代码在工作表功能行上停止,运行时错误13,类型不匹配。该判断的目的是检查范围是否仅包含0或空格。公式OR(A1:A5 = 0,A1:A5 ="")在excel中工作正常,所以我假设它不接受我当前形式的范围(注意:我试图删除。来自checkrange.value的值,但这也不起作用)

对此的任何帮助,一如既往,非常感谢!

编辑:我Dim checkrange As range将其定义为范围

4 个答案:

答案 0 :(得分:1)

无需在$sql="SELECT leave_dates from employee_leaves WHERE employee_leave_employee_id='24'"; $query= mysql_query($sql); $input="08/04/2016, 08/02/2016,08/16/2016"; $input_array=explode(",", $he); //$count=count($ha); while($rc=mysql_fetch_array($query)) { $dates=$rc['leave_dates']; $dat=explode(",", $dates); $result = array_merge(array_diff($dat, $input_array), array_diff($input_array, $dat)); echo $result[1]; } 中使用WorksheetFunction

If statement

因为您检查If checkrange.value = 0 Or checkrange.value = "" Then 而不是Range,您必须使用CellCountA

这是CountIf的一个例子:

CountA

答案 1 :(得分:1)

您需要两个单独的COUNTIF语句:

If Application.WorksheetFunction.Countif(checkrange, "0") + Application.WorksheetFunction.Countif(checkrange, "") = 0 Then

答案 2 :(得分:0)

我想它应该是

If Application.WorksheetFunction.Or(checkrange.value = 0, checkrange.value = "") = False Then

虽然没有必要在这里使用工作表功能。试一试,让我们看看会发生什么。

答案 3 :(得分:0)

数组公式OR(A1:A5 = 0,A1:A5 = "")检查范围中任何(1个或更多)的单元格是0还是""。检查范围中的任何单元格是否 0或""然后你可以使用这个

If WorksheetFunction.CountIfs(checkrange, "<>0", checkrange, "<>") > 0 Then