2014-10-02 93 views
2

0我有一个Excel宏:治疗一个字,如“NA”为除

Sub Add() 
Range("I1").Value = Range("A1").Value + Range("B1").Value + Range("G1").Value 
End Sub 

G1条目包含单词NA,打破我除了用错误:

Run-time error '13' Type mismatch

我已经尝试了很多东西,很多我都忘记了:

NA = 0和修改.Value其他东西的东西,我试过了:

if Range("G1").Value = ("NA") Then Range("G1).Value = 0 Endif 

没有什么似乎可以工作,我在网上找不到任何东西。

+2

尝试'=瓦尔(范围( “A1”)。值)+瓦尔(范围( “B1”)。值+。 Val'将字符串转换为双精度,“NA”应该转换为零。 – 2014-10-02 12:45:47

+0

@MattCremeens这样做了,非常感谢你!!! – Katie 2014-10-02 12:49:50

+0

@MattCremeens还有一个问题,我想把'For i As Integer = 1 To 5',然后是我的函数Range(“Ii”)。Value = Range(“Ai”)。Value + Range(“Bi”)。Value + Val(Range(“Gi”)。Value )'。 它会在这样的范围内使用'i'吗?为什么它会给出错误,因为我为整数= 1到5',语法错误',我已经完全复制了表单他们想让我使用 – Katie 2014-10-02 12:53:15

回答

2

尝试

= Val(Range("A1").value) + Val(Range("B1").value + ... 

Val()将字符串转换为加倍,和 “NA” 应被转换成零。

如果你想行号是一个变量,你需要

Range("I" & i)