Excel VBA将单元格值称为#DIV / 0

时间:2018-06-16 06:58:47

标签: excel-vba vba excel

细胞上的价值:

K12 = 0,    
K13 = 0 ,    
K14 = K13+K12

哪个K14显示为#DIV/0!

如果K14上的值大于7,将弹出MsgBox 但由于值为#DIV / 0!,VBA不起作用。

Sheets("Passdown Format").Select
Range("K14").Select
If Range("K14").Value > 7 Then
MsgBox "More than 7"
Else
End If

3 个答案:

答案 0 :(得分:1)

K14显示#DIV / 0 !,因为K12和K13不是数字,而是字符串。将它们更改为数字(即删除逗号?),您的代码就可以了。

return [
   'providers' => [
    'core_http' => 'Application\Example\HttpServiceProvider'
   ]
]

答案 1 :(得分:1)

如果K14报告#DIV / 0!然后在工作表上的某个地方(而不是在代码中)有一些涉及除以0的东西。

正如测试一样,我创建了一个电子表格,在K12中放0,在K13中放0,并在K14中生成这两个的总和;按照你的例子。我得到了0。

因此,问题出现在工作表上,而不是代码中。

如果您希望代码提供对错误的响应,那么iserr()将执行此操作,但我觉得这不是您想去的地方。

编辑:我没有假设逗号是在K12或K13中,正如另一个答案所暗示的那样,但如果它们是正确的那么它们是完全正确的;然后,单元格将包含文本而不是数字,并会生成您的错误。

答案 2 :(得分:1)

在VBA代码中,您可以检查单元格是否包含数值:

import { Component, OnInit } from '@angular/core';
import { Router, RoutesRecognized } from '@angular/router';
import { filter, pairwise } from 'rxjs/operators';


export class AppComponent implements OnInit {

    constructor (
        public router: Router
    ) {
    }

    ngOnInit() {
        this.router.events
            .pipe(filter((e: any) => e instanceof RoutesRecognized),
                pairwise()
            ).subscribe((e: any) => {
                console.log(e[0].urlAfterRedirects); // previous url
            });
    }

如果单元格包含" DIV / 0",通过检查单元格的内容是否为数字,它将不再遇到类型不匹配错误。