2016-09-20 9 views
0

私はAB 例えばの内容に基づいて、列のS、WおよびAHで内容を変更しますマクロを作成しようとしているを返しますAB1 = Noの場合、S1 = C-MEM、AH = N/Aとなり、Wはクリアされます。何らかの理由でVBAはExcelで型の不一致

は、私は私のif文の最初の行に「種類不一致」エラーを取得し、なぜ、またはどのようにそれを修正するために把握することはできません - でも同様の問題についての他の記事を読んだ後。あなたは、エラーが= Noであるかどうかをテストしようとしている

Sub test() 
    Dim lastrow As Long 
    Dim i As Long 
    lastrow = Range("AB" & Rows.Count).End(xlUp).Row 
    For i = 2 To lastrow 
    **-> If Range("AB" & i).Value = "No" Then 
      Range("S" & i).Value = "C-MEM" 
      Range("W" & i).Value = "" 
      Range("AH" & i).Value = "N/A" 
     End If 
    Next i 
End Sub 

おかげ

+2

フム、私はあなたのエラーを複製することはできません。それは私のために大丈夫です。 (Excel2016)。新しいワークブックを作成し、列「AB」にいくつかのデータを投げて、それが動作するかどうかを確認します。 – BruceWayne

+1

おそらく、列にエラーがあります。 –

+0

私はこのマクロ作業を1〜2回行ってきました。問題の一部は、同じ列の前に他のマクロを実行していることです。他のマクロが何らかの形で列/セルのプロパティを変更している可能性がありますか?奇妙なことは、私は同じシートの別の列でこのマクロを試すとき、それは正常に動作します。 – Pomul

答えて

5

エラーをテストし、そのループのロジックをスキップ:

Sub test() 
    Dim lastrow As Long 
    Dim i As Long 
    lastrow = Range("AB" & Rows.Count).End(xlUp).Row 
    For i = 2 To lastrow 
     If Not IsError(Range("AB" & i).Value) Then 
      If Range("AB" & i).Value = "No" Then 
       Range("S" & i).Value = "C-MEM" 
       Range("W" & i).Value = "" 
       Range("AH" & i).Value = "N/A" 
      End If 
     End If 
    Next i 
End Sub 
+0

あなたは* ABI *はエラーが生じ式ことができることを言っています私の仮定の意図だった、右? – Raystafarian

+0

@Raystafarian。 –