[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで#N/Aを表示させないようにするには』(ウルトラ)
Sub test()
With Sheets("リスト 全体会用") .Range("A1:D100").Copy .Range("E1").PasteSpecial xlPasteValues End With Application.CutCopyMode = False End Sub
上記のマクロでコピペができました。元データーがOFFSET関数でA:DにあるデーターをE:Hにコピペしています。そこで、データーの入っていないところは当然のことながらOFFSET関数でA:Dに#N/Aのエラーになります。この#N/Aを表示させないようにするには、どんなマクロを付け加えたらできるのか、教えて頂けますか。
ちなみにA:Dには下記の関数が入っています。
OFFSET('リスト 部会用'!$D$4,(ROW(A1)-1)*3,COLUMN(A1)-1)
< 使用 Excel:unknown、使用 OS:Windows10 >
使い方は
https://kokodane.com/kansu_logic_04.htm
(マナ) 2017/01/15(日) 13:23
=IFERROR(INT(B3/1000),"---")
これでは、関数のエラーになりますが、すみません、恐縮ですがどうしたらよいのでしようか。教えて頂けませんか。(#NAMEの表示になります)
IFERROR(OFFSET('リスト 部会用'!$D$4,(ROW(A1)-1)*3,COLUMN(A1)-1,"---"))
(ウルトラ) 2017/01/15(日) 17:14
(マナ) 2017/01/15(日) 17:27
Excel2003ですので、この関数がつかえなのかもしれません。つぎのものでもだめでした。
IF(ISERROR(OFFSET('リスト 部会用'!$D$4,(ROW(A1)-1)*3,COLUMN(A1)-1,"---"))
(ウルトラ) 2017/01/15(日) 17:46
こんばんわ。
IFERROR関数は2007から追加された関数なので2003では使用できません。 今どき2003を使用するのは危険すぎるので最新バージョンに変える事を強くお勧めしますが、それは置いといて、 EXCELのバージョンは必ず書くようにして下さい。
サポートが完全に終了してかなり経つのと、2007、2010、2013、2016と4つも新バージョンが出てる時代なので、 2003を使ってる人は珍しくなってきてるので。
2003ですと=IF(ISERROR(元の式),"",元の式)のような書き方になります。
もしくは値のコピペ後は、#N/Aと言う文字になってるはずなので、文字になっていれば置換機能で消すことが可能です。 マクロ記録でコードを取得して、現在のコードに付け加えて下さい。
(sy) 2017/01/15(日) 18:07
マクロで処理しているのですから、マクロ内でやるとして、syさんアドバイスの置換がベストだと思いますが 条件を指定してジャンプ機能で定数/エラー値を選択してクリアする方法もあります。 こちらも、マクロ記録でコードが生成されます。
ただ、置換と異なり、そういったエラー値がなければ、実行時エラーで止まってしまうのでエラートラップを しかけなければいけないことと、#N/A 以外の #VALUE! といったすべてのエラーが対象になってしまいますが。
Sub Test2() With Sheets("リスト 全体会用") .Range("A1:D100").Copy .Range("E1").PasteSpecial xlPasteValues On Error Resume Next .Range("E1:H100").SpecialCells(xlCellTypeConstants, xlErrors).ClearContents On Error GoTo 0 End With Application.CutCopyMode = False End Sub
(β) 2017/01/15(日) 19:10
それと、老婆心ながら。
もちろん、xl2003を使っているユーザも、まだまだ多いようですし、中にはもっと古いものを 使って居る人もいますね。
それはいいのですが、何も情報がなければ、回答者は 少なくとも xl2007以降 を意識して回答します。
質問をアップする際に エクセルバージョンやWIndowsのバージョンを選択する部分がありますよね? 必ず、そこに印をつけて質問をアップするようにしてくださいね。
(β) 2017/01/15(日) 19:22
すみませんが回答ではありません。普段OFFSET関数をほとんど使わないから私が知らないだけかもしれませんが
OFFSET('リスト 部会用'!$D$4,(ROW(A1)-1)*3,COLUMN(A1)-1) ↑の式で#N/Aのエラーがでることってありますか?
あとOSがWindows10だったら当然2007以上だと回答者は思いますよね。 (bi) 2017/01/16(月) 08:50
>OFFSET('リスト 部会用'!$D$4,(ROW(A1)-1)*3,COLUMN(A1)-1) >↑の式で#N/Aのエラーがでることってありますか? その式そのものがが原因で#N/Aエラーになることは無いと思うが、その参照しているセルが#N/Aだとありえるか。 (ねむねむ) 2017/01/16(月) 09:12
To bi さん
よくわからないんですが、質問タイトルには #N/A、でもコメントの中では #NAME ですから、たぶん #N/A ではないのでしょうね。
アップされた数式も (手打ちのようです)
IF(ISERROR(OFFSET('リスト 部会用'!$D$4,(ROW(A1)-1)*3,COLUMN(A1)-1,"---"))
なんだかへんですし。
(β) 2017/01/16(月) 09:17
βさん、#NAME?エラーのほうはIFERROR関数に関してではないのか? (ねむねむ) 2017/01/16(月) 09:21
あっ! そうでしたね。
御意!
(β) 2017/01/16(月) 09:38
ああ、なるほど。ねむねむさんありがとうございます。 (bi) 2017/01/16(月) 09:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.