Excel:VBA:CountIf()运行时出现Run-time error:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel:VBA:CountIf()运行时出现Run-time error:相关的知识,希望对你有一定的参考价值。
在运行如下程序时,出现Run-time error:
程序起始:
Dim myWorkbook As Excel.Application
Dim mySheet As Excel.Worksheet
Set myWorkbook = New Excel.Application
myWorkbook.Workbooks.Open (“workbookName”)
Dim rangeTest As Excel.range
Dim countTest As Double
Dim maxTest As Variant
(1) 第一种情况会出现错误:
Set mySheet = myWorkbook.sheets(“sheetName”)
Set rangeTest = mySheet.range(mySheet.Cells(1, 1), mySheet.Cells(10, 1))
countTest = Application.WorksheetFunction.CountIf(rangeTest, ">0") //在运行CountIf所在的行时,出现错误:Run-time error ‘13’: Type mismatch
(2) 第二种情况运行正常:
Set mySheet = ActiveWorkbook.Worksheets(“sheetName”)
Set rangeTest = mySheet.range(mySheet.Cells(1, 1), mySheet.Cells(10, 1))
countTest = Application.WorksheetFunction.CountIf(rangeTest, ">0")
//同样是CountIf(),只是sheet对象改变了,运行正常。
(3) 第三种情况运行正常:
Set mySheet = myWorkbook.sheets(“sheetName”)
Set rangeTest = mySheet.range(mySheet.Cells(1, 1), mySheet.Cells(10, 1))
maxTest=CVar(Application.WorksheetFunction.Max(mySheet.range(mySheet.Cells(rowStart,col), mySheet.Cells(rowEnd, col))))
//还是第一种情况时的sheet对象,Max可以正常运行
问题:
1. 为什么CountIf在第一种情况下不能正常运行,而第二种情况可以?
2. 为什么Max可以在第三种情况下运行,而第一种情况的CountIf不能正常运行?
谢谢您的回答!
这个问题乍一看好像是数据格式不符合,而实际上CountIf在遇到非数值型单元格时会当做不符合条件而不会产生Run-Time Error.
- 根据你的建议,我把需要处理的单元格改为数值型的,依然会有相同Error.
- 如果将同样的非数值型单元格“比如一些中文或其它字符”拷贝到ActiveWorkbook.Worksheets(“sheetName”)中的sheet中,CountIf可以正常运行.
这真是非常奇怪,希望您继续关注,谢谢!
ActiveWorkbook.RefreshAll
endif
for i=1 to 72
if [dj1]=cells(i,114) then
ActiveWorkbook.RefreshAll
exit for
endif
next
Java多线程问题--线程运行时出现异常的解决办法
private static final ThreadPoolExecutor executor = new ThreadPoolExecutor(32, 128, 120, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(512),
r -> {
Thread t = new Thread(r);
t.setUncaughtExceptionHandler((th, e) ->
logger.error(LogBuilder.log("ThreadPoolExecutor", "uncaught exception," + th.getName()), e)
);
t.setName("th" + t.getId());
return t;
},
(r, exec) -> {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new RejectedExecutionException("Task " + r.toString() +
" rejected from " +
e.toString());
}
exec.getQueue().add(r);
});
以上是关于Excel:VBA:CountIf()运行时出现Run-time error:的主要内容,如果未能解决你的问题,请参考以下文章
使用Spring4时, 运行时出现找不到MappingJacksonHttpMessageConverter的情况
为啥运行“pip install -r requirements.txt”时出现错误“找不到满足要求 scipy==1.5.3 的版本”?