Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
型が一致しません エラー13
投稿日時: 19/05/16 06:14:50
投稿者: egao

質問、失礼いたします。
 
VBA超初心者です。
 
型が一致しませんと出てしまう初歩的な質問です(-_-;)
 
  For i = 3 To 26
        If Cells(i, "L") = 1 Then ←←エラーはここです
            If Cells(i, "B") < 30000 Then
                Cells(i, "K") = 11
            End If
        End If
 
 
プログラムはこのようなIFの繰り返しになっていて、実行結果は得られるのでエラーは気にしなくていいのでしょうか??(そこもわからなくてすみません)
 
どなたかご教示下さい。
 
 環境はWindows10のExcel2013です。よろしくお願いいたします。

回答
投稿日時: 19/05/16 16:13:20
投稿者: WinArrow
投稿者のウェブサイトに移動

 
 
 
>実行結果は得られるのでエラーは気にしなくていいのでしょうか??(そこもわからなくてすみません)
  
エラーが表示されても実行される・・・ ということですか?
  
問題の箇所は
 セルの値が「数値」の「1」を判定しています。
セルに文字列、数値以外(例えば、エラー)が入っていると思われます。
確認しましょう。
  
   
質問とは異なりますが
セルには、Valueプロパティを省略しないようお勧めします。
セルをシートで修飾しないで記述すると、アクティブシートと見做されます。
シートで修飾することも心掛けてください。
 
 

With Sheets("Sheet1")
  For i = 3 To 26
         If .Cells(i, "L").Value = 1 Then ←←エラーはここです
            If .Cells(i, "B").Value < 30000 Then
                 .Cells(i, "K").Value = 11
             End If
         End If
 Next
End With
   
 
 
  
 

回答
投稿日時: 19/05/16 16:31:05
投稿者: bi

もうひとつのサイトはマルチポスト禁止です。あちらでは他人が作ったトピに質問を書き込んでいるので解決マークは付けずに誤って質問を書いた等とコメントをして終わりにしてください。

投稿日時: 19/05/17 07:30:45
投稿者: egao

bi さんの引用:
もうひとつのサイトはマルチポスト禁止です。あちらでは他人が作ったトピに質問を書き込んでいるので解決マークは付けずに誤って質問を書いた等とコメントをして終わりにしてください。

 
ご指摘通りです、仕組みもわからずあわてて送信してしまい申し訳なく思っています。確認します。
 
 
 

投稿日時: 19/05/17 07:54:48
投稿者: egao

WinArrow さんの引用:

 
 
  
問題の箇所は
 セルの値が「数値」の「1」を判定しています。
セルに文字列、数値以外(例えば、エラー)が入っていると思われます。
確認しましょう。
  
   
質問とは異なりますが
セルには、Valueプロパティを省略しないようお勧めします。
セルをシートで修飾しないで記述すると、アクティブシートと見做されます。
シートで修飾することも心掛けてください。
 
 

With Sheets("Sheet1")
  For i = 3 To 26
         If .Cells(i, "L").Value = 1 Then ←←エラーはここです
            If .Cells(i, "B").Value < 30000 Then
                 .Cells(i, "K").Value = 11
             End If
         End If
 Next
End With
   
 
 
  
 
引用:

 
 
アドバイスありがとうございます。
 
(i, "L") のセルにはVLOOKUPしたデータが入っていたのですが、(i, "L") のセルとL行の書式設定を見ると
数値になっていました。VLOOKUPの先のセル(参照元)にはIF文の計算式がはいっています。
教えていただいた通りVLOOKUPをやめてただの数値を入力するとエラーもなく実行できました。
・・・計算式がよくないのでしょうか。。
 
あとシートの指定も今後は心がけます。ありがとうございます。
 

回答
投稿日時: 19/05/17 10:02:22
投稿者: WinArrow
投稿者のウェブサイトに移動

>VLOOKUPをやめてただの数値を入力するとエラーもなく実行できました。
>・・・計算式がよくないのでしょうか。。
 
計算式がよくないわけではなく、
VLOOKUP関数の戻り値(結果)がエラー(例えば、#N/A!)になっていませんか?
  
 

投稿日時: 19/05/20 07:08:14
投稿者: egao

WinArrow さんの引用:
>VLOOKUPをやめてただの数値を入力するとエラーもなく実行できました。
>・・・計算式がよくないのでしょうか。。
 
計算式がよくないわけではなく、
VLOOKUP関数の戻り値(結果)がエラー(例えば、#N/A!)になっていませんか?
  
 

 
おっしゃる通りで、エラーになっている個所も含んでいました。
範囲を改めたら実行後のエラーが出なくなりました。
ありがとうございました!