たとえばセルA1とF1、A2とF2、A3とF3…を比較して、内容が同じであれば"〆指示済"、異なれば"未〆指示"をD列に表示するようなVBAって出来ますか?
・「作業中フォルダ」に存在するファイルのリストをA列に、「〆指示フォルダ」に存在するファイルのリストをE列に表示
・両者をVLOOKUPで照合したリストをF列に表示
以上の作業をVBAで行ったデータがあるのですが、その先がつまづいてしまってます…
r = 202
i = 3
Cells(i, 6) = Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False)
For i = 3 To r
If Cells(i, 1) = "" Then
Cells(i, 4) = ""
ElseIf Cells(i, 1) = Cells(i, 6) Then
Cells(i, 4) = "〆指示済"
Else
Cells(i, 4) = "未〆指示"
End If
Next i
ElseIfのところで「実行時エラー'13':型が一致しません。」としかられてしまいます…
これって間違ってるのでしょうか??
初心者及び独学なので「参考書買え!」といわれればそれまでなのですが、どうかご教授願えませんでしょうか?
No.2ベストアンサー
- 回答日時:
ElseIf Cells(i,1) = Cells(i, 6) Then の部分で 「実行時エラー'13':型が一致しません。
」と出るのはANo.1さんが指摘されて、既に確認されたとおり#N/Aエラーが発生しているためです。
For 文の前に Cells(i, 6)の内容を""や"エラー"などに置き換えてはどうでしょうか?
If IsError(Cells(i, 6)) Then
Cells(i, 6) = ""
End If
など
> Cells(i, 6) = Application.IsError(Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False), "", Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False))
の部分がエラーになるのは、IsErrorワークシート関数の使い方が間違っているためです。
恐らくIFワークシート関数を入れるのを忘れていませんか?
Masa2072さま、
ありがとうございます!以下のような形で上手くいきました。
r = 202
i = 3
For i = 3 To r
Cells(i, 6) = Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False)
If IsError(Cells(i, 6)) Then
Cells(i, 6) = "エラー"
End If
If Cells(i, 1) = "" Then
Cells(i, 4) = ""
ElseIf Cells(i, 1) = Cells(i, 6) Then
Cells(i, 4) = "〆指示済"
Else
Cells(i, 4) = "未〆指示"
End If
Next i
独学かつ、手探り状態だったので本当に助かりました。
上手く動くと嬉しいものですね!
VBAの参考書を探して、本格的に勉強してみようかと思ってます。
ヒントを下さったhana-hana3さまにもこの場を借りてお礼申し上げます。
ありがとうございました。
No.1
- 回答日時:
>ElseIfのところで「実行時エラー'13':型が一致しません。
」としかられてしまいます…セルにエラーになっている式はありませんか?
この回答への補足
F3が#N/Aとなっています。ですが、IsErrorで以下のように書き直してもダメでした…今度は実行時エラー'1004':引数の数の誤りがありますとなってしまいました。デバッグすると以下の部分が黄色くなってます。
Cells(i, 6) = Application.IsError(Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False), "", Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
W3CのCSS検証エラーについて
-
POV-Ray についての質問です!
-
Excel ファイルに保存すると実...
-
webサイトにエラーがあるとどん...
-
VBA初心者ですがダウンローダー...
-
シェルスクリプトの実行エラー...
-
ホームページビルダーの”全体の...
-
【Adobe Premiere Element 2.0...
-
アプリストア インストールミ...
-
aspxが動作しない
-
ファイルのダウンドードでエラー
-
やはり図形のクリアで実行時エ...
-
DVDシュリンクで…エラーが!!
-
C# HttpWebRequestのエラーにつ...
-
アクセス2019入力規則、規...
-
セルA1とF1、A2とF2、A3とF3…を...
-
jw cadの名前をつけて保存・・...
-
メモ帳を保存せずに誤って閉じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Debug Assertion Failed?
-
VBAでFormat がうまく使えない
-
NET USE コマンドでエ...
-
Excel ファイルに保存すると実...
-
シェルスクリプトの実行エラー...
-
Web.Config 構成ファイルのエラー
-
ホームページビルダーの”全体の...
-
エラーコード 70 「書き込み...
-
vbaでファイルを開くパス名に変...
-
C# HttpWebRequestのエラーにつ...
-
ACCESS VBAのOpenForm書き方
-
VBAで印刷するとエラーになって...
-
POV-Ray についての質問です!
-
不明なソフトウェア例外(0xe06...
-
Access ADOで文字列を日付型へi...
-
WNetAddConnection*()の使い方
-
LTspiceのTime Stepエラーについて
-
bcpadがうまく実行できないので...
-
xmlドキュメントから別拡張子で...
-
VB2010ビルドできるが配...
おすすめ情報