Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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/3/xpath/2.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
Excel 在VBA中使用AverageIf时出现类型不匹配错误_Excel_Vba - Fatal编程技术网

Excel 在VBA中使用AverageIf时出现类型不匹配错误

Excel 在VBA中使用AverageIf时出现类型不匹配错误,excel,vba,Excel,Vba,我一直从下面最后一行得到类型不匹配错误(运行时错误13)。 数据包含在csv文件中。 列B包含0-10之间的整数。 列C具有从-1到1的十进制数 Dim xl作为新的Excel.Application 将wb调整为新的Excel.工作簿 设置wb=xl.Workbooks.Open(“C:\…\Fake.csv”) 调试.打印(应用程序.工作表功能.平均值IF(工作表(1).范围(“B2:B30”)、1、工作表(1).范围(“C2:C30”)) 从官方文件来看,arg3应该是一个变体。所以我尝

我一直从下面最后一行得到类型不匹配错误(运行时错误13)。
数据包含在csv文件中。
列B包含0-10之间的整数。
列C具有从-1到1的十进制数

Dim xl作为新的Excel.Application
将wb调整为新的Excel.工作簿
设置wb=xl.Workbooks.Open(“C:\…\Fake.csv”)
调试.打印(应用程序.工作表功能.平均值IF(工作表(1).范围(“B2:B30”)、1、工作表(1).范围(“C2:C30”))
从官方文件来看,
arg3
应该是一个变体。所以我尝试了下面的代码,但是出现了相同的错误

Dim DirArray作为变量
DirArray=wb.Sheets(1).范围(“C2:C30”).值
Debug.Print(Application.WorksheetFunction.AverageIf(wb.Sheets(1.range)(“B2:B30”)、1.DirArray))

有人能帮忙吗?谢谢

您的第一个版本对标准和总和范围使用了相同的范围(B2:B30)。我不明白您如何使用此代码获得错误13。根据单元格包含的内容,您可能会得到错误1004,而不是13。我在arg3中指的是范围(C2:C30)。那是个打字错误。感谢您指出,如果您在Debug.Print行中将“DirArray”替换为“wb.Sheets(1).range(“C2:C30”).Value”,会发生什么?并且可能删除.value部分?注意-删除外圆括号:
Debug.Print Application…
您的第一个版本使用相同的范围(B2:B30)作为条件和总和范围。我不明白如何使用此代码获得错误13。根据单元格包含的内容,您可能会得到错误1004,而不是13。我在arg3中指的是范围(C2:C30)。那是个打字错误。感谢您指出,如果您在Debug.Print行中将“DirArray”替换为“wb.Sheets(1).range(“C2:C30”).Value”,会发生什么?并可能删除.value部分?注意-删除外圆括号:
Debug.Print应用程序…