2016-12-08 14 views
-1

エラーが発生しました。説明できません。Excelのリストがあります。メモリにロードして、次の行がまだ相対行かどうかを確認します。コードがエラーを与えている理由私はかなり理解できないセルがIf value = "" Thenを実行して値を持っていますが、値が1012738であり、それは私に未処理の例外を与える...変換エラーの場合値= "" Then

Error image

、セルの値がフォーマットされチェックされた以前のすべてのセルと同様です。しかし、ここではエラーがスローされます。

多分私はそれを見ていないと誰かが説明することができますか?

+0

残りのコードは投稿できますか? 'oSheet'と' i'はどう定義されていますか? –

+0

'Value =" "'の代わりに 'If IsEmpty(oSheet.Range(" A "+ i).Value)= True'を見たいかもしれません。 –

+4

'文字列"から "Double '型への変換は無効です。 - エラーがそれをすべて説明しています。空の文字列と数値を比較しようとしています。 –

答えて

1

毎回値をチェックする必要があります。

Dim o As Object = oSheet.Range(xxx).Value 

If (o IsNot Nothing) Then 
    Select Case o.GetType 
    Case GetType(Double) 
     ' do work here 
    Case GetType(Integer) 
     ' do work here 

    ... 

    End Select 
Else 
    ... 
End If 
0

あなたのイメージは私のために表示されていません。

excelのほとんどの例外は、データ型に関連しています。おそらく、NULLまたは人間の目に整数のような文字列を持っている可能性があります。 trim()、int()、str()などを必要に応じて盲目的に試してみてください。実際に整数をテストしているか、文字列が一致しているかどうかを確認してください。

まず、テストのプログラム方法...のisEmptyかのisNullセルが良好であることを確認するために必要な...

if isEmpty(value) Then 
    <do something> 

これが最も可能性の高いメッセージを引き起こしているエラーをキャッチします。空でない場合は、isNullでテストしてみてください。 1つはセルが空であることを意味し、もう1つは初期化されていないことを意味します(Excelではほとんど問題ありませんが、VBAコードを使用すると起こります)。また

...あなたの文は、最適ではない...の場合、+それ以外の場所で> <使用中のセットアップ...

あなたのコード...であれば

If value = "" Then 

あなたが何か他のものではないことをテストしたいときは、一般式を使用してください...

if value <> "value" Then 
    "some operation" 
関連する問題