advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 228 for エラー値 #N/A (0.018 sec.)
エラー値 (861), #n/a (1385)
[[20130328215903]]
#score: 10842
@digest: c0aa18481df149f840b0ad7ef203d13e
@id: 61927
@mdate: 2013-03-28T14:34:38Z
@size: 3598
@type: text/plain
#keywords: 索no (19398), e135 (10539), myi (8752), 訪動 (7748), 機no (7748), myy (6210), 見付 (4942), scenarios (3187), inputbox (3092), 動機 (2965), contents (2356), drawingobjects (2083), protect (1467), worksheetfunction (1430), はva (1326), 索値 (1317), application (1284), myr (1209), ー値 (1104), isnumeric (1078), variant (1000), (k (900), デバ (858), 時エ (825), vlookup (817), クラ (799), ハズ (794), 太) (744), iserror (722), 行時 (715), 型に (679), メソ (658)
『Vlookupがデバック』(k)
Sub yyy() Application.ScreenUpdating = False ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False Dim myy, myi, myr Dim m As Variant, k As Variant, y As Long, w As Long, i As Long ' k = Range("c2").Value m = Application.InputBox("検索NOを入力してください") ' k = m If VarType(m) = vbBoolean Then MsgBox "キャンセルされました" Exit Sub Else End If With Worksheets("Sheet1") myy = Application.WorksheetFunction.VLookup(m, .Range("c10:e135"), 2, False) myi = Application.WorksheetFunction.VLookup(m, .Range("c10:e135"), 3, False) .Range("d2").Value = myy .Range("g2").Value = myi + 1 .Range("c2").Value = k MsgBox m & "が入力されました" End With myr = InputBox("メーカ名確認後数量を入力してください!") i = m + 10 If IsNumeric(myr) Then Cells(i, 5).Value = Cells(i, 5) + myr Else MsgBox "計算できない値です" End If MsgBox "「NO」にて入力してください" If IsNumeric(myr) Then y = InputBox("年齢を入力 NO 9〜13") Cells(i, y).Value = Cells(i, y) + myr w = InputBox("来訪動機 NO 14〜22") Cells(i, w).Value = Cells(i, w) + myr End If ' Application.ScreenUpdating = True ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub c10:e135までの範囲でApplication.WorksheetFunction.VLookupを 使いたいのですが デバッグになりますどこがおかしいのか 教えて頂きたいのですが 宜しくお願いします ---- 検索値がヒットしないのでエラーになっている・・・のではないか? そんなハズはないと云うことなら、検索値のデータ型が、合っていないのだと思います。 つまり、数値であるべきなのに数字(文字の一種)が入った・・・のではないか? >m = Application.InputBox("検索NOを入力してください") m = Application.InputBox("検索NOを入力してください", Type:=1) ↑ 数値型を指定してみる (半平太) 2013/03/28(Thu) 22:27 ---- エクセル上で#N/Aや#VALUE!等のエラーを返すシート関数を WorkSheetFunction.関数 と、 WorksheetFunctionクラスのものを使うと、エラー時に、実行時エラーで中断する。 そのような関数を使う場合は、Applicationクラスのものを使う。そうすると実行時エラーにはならず 「エラー値」がかえってくるので、それを判定する。 エラー値が返っても受けられるように、受ける変数はVariant型にしておく。 (アップされたコードではVariant型になっているのでOK) myy = Application.VLookup(m, .Range("c10:e135"), 2, False) If IsError(myy) Then MsgBox "検索値が見付かりません" Exit Sub End If myi = Application.VLookup(m, .Range("c10:e135"), 3, False) If IsError(myi) Then MsgBox "検索値が見付かりません" Exit Sub End If ところで、変数記述はプロシジャの最初にまとめておいた方が見やすい。 それと、 Dim m As Variant, k As Variant, y As Long, w As Long, i As Long このように、ちゃんと 型を明示した記述をしているのに Dim myy, myi, myr というのも混在しているのが、ちょっとちぐはぐな感じはするね。 あと、InputBox関数とは別に、半平太さんのアドバイスの InputBoxメソッドもある。 こちらのほうは、数値と指定すると、数値以外の入力を、メソッドの中で、はじくので マクロ側で、数字だったかどうかのチェックをすることが不要になるよ。 (ぶらっと) ---- (半平太)さん、(ぶらっと)さん できました ありがとうございます (K) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201303/20130328215903.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97044 documents and 608215 words.

訪問者:カウンタValid HTML 4.01 Transitional