• 締切済み

vbaのエラーの認識??

あるベンダーからのリンクをsheet1(a1)に貼っています。 リンクの状態によって戻り値が"#NAME?"になることがあります。 このときにsheet1(a1)の値じゃなくsheet2(a1)の値を使いたい場合、vbaにはどういう風に書いたらよいんでしょうか? 構文エラーとかじゃなく、リンクによるエラーなので、戻り値が"#NAME?"だったらsheet2(a1)を参照ってしたいんです。 教えてください。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>ベンダーからの ベンダーとは何?質問者の場合の事情じゃないの。 >リンクをsheet1(a1)に貼っています 具体的にA1セルにはどうなっているの。 VBAでリンクを張っている。 リンクと言う言葉は参照と言う単純な意味やHyperLinkその他があって もう少し丁寧に。 >戻り値が"#NAME?"になることがあります VBAの質問でありながら、この#NAMEはエクセルの関数エラーではないの?関連は? 自分だけのケースで頭がいっぱいのような気がする。あなたの見て考えているシートは読者にはみえない。他人が読んで判りやすい表現にしてください。

hiroshi_sp
質問者

お礼

抽象的ですみませんでした。 具体例です。 sub t() sheet("sheet1").cells(1,1).value=sheet("sheet2").cells(1,1).value end sub sheet1のa1の数式 =RtGet("IDN","JNIc1","TRDPRC_1") sheet2のa2に 9740 sheet2のb2の数式 =a1+1 たぶんsheet1のa1に数式を入れた時点で"#NAME?"が帰ってくると思います。sub tを走らせた時点で、sheet1のa1の戻り値も"#NAME?"だと思います。もし、戻り値が"#NAME?"だったら、「sheet2のb2の数式 =a1+1」のa1をa2に変えたいというのをsub tの中でどう書いたらよいんでしょうか?? 教えてください。

hiroshi_sp
質問者

補足

たびたびすみません。 sheet("sheet1").cells(1,1).value=sheet("sheet2").cells(1,1).value は、正しくは sheets("sheet1").cells(1,1).value=sheets("sheet2").cells(1,1).value です。

関連するQ&A

  • VBAでのエラーです・・。

    最近VBAマクロを本を片手に勉強しています。シートを選択するVBAを作っていて次のような記述ができないのか考えています。 dim A as String A = "sheet2,sheet3" Sheets(Array(A)).select とやると、Arrayの行で「インデックスが・・・」というエラーで落ちます。Arrayを変数で指定することができないのですが・・。なにか記述に問題があるのでしょうか?(変数Aに"sheet2", "sheet3"と値が入るようにしても結果はNGでした・・。) 宜しくお願いします。

  • 【エクセルVBA】「インデックスが有効範囲にありません」というエラーがでます

    こんにちは。VBA初心者ですが、下記コードを実行すると エラーが出てしまいました。 シート(シート1)のセルから別シート(シート2)のセルに 値のみコピーするVBAを組んでいます。 適宜、シート1に入力したものを読みこませていきたいので 変数を使用しています。 ------------------------------------------------------------- Sub セルのコピー() Dim X As Integer X = 3 Y = 2 Do While Cells(X, "A").Value <> "" Sheets("シート1").Cells(X, "A").Copy Sheets("シート2").Activate Sheets("シート2").Cells(Y, "F").PasteSpecial _ Paste:=xlPasteValues ⇒エラー対象 Application.CutCopyMode = False X = X + 1 Y = Y + 1 Loop End Sub ------------------------------------------------------------ つまり、シート1のA3セルを先頭にA4,A5,A6・・・と続くセルの値 をシート2のF2を先頭としたセル(以下、F3,F4・・・)に値のみコピー していきたいのですが。。 実行すると「インデックスが有効範囲にありません」というエラーが でます。デバック対象は上記、「⇒エラー対象」の構文です。 変数の設定の仕方がおかしいのでしょうか。。 ご教示のほどよろしくお願いいたします。

  • EXCEL VBAで探した値を色を付ける

    EXCEL VBAで探した値を色を付ける方法が知りたいです。 シート2の値を参照してシート1の中からVBA シート2の数字を見つけて 合ったら シート1の同じ数字の背景に色をつけていく そんなVBAが作りたいのですが いい案が浮かばないのでどなたか教えていただけませんか? よろしくお願いいたします。 Sheet1 sheet2 A A 1 10 : 1 12 2 11 : 2 14 3 12 : 3 15 4 13 : 5 14 : 6 15 : 7 16 sheet1の12・14・15の所の背景を色を付けたいのですが うまくいかないのでよろしくお願いいたします

  • excel2000のvbaハイパーリンク

    excel2000のvbaユーザーフォームで ラベルをクリックしたら、ハイパーリンクで別のファイルを開くのですが、リンクが切れていた場合、リンクが切れているという風に警告してもらいたいです。 リンクさせるアドレスを、sheet1のA1セルに格納していますが、下記のままだと、リンク切れしていたばあい、エラーとなってしまいます。Private Sub テストラベル_Click()ThisWorkbook.FollowHyperlink Address:=Worksheets(”Sheet1”).Range("A1").TextEnd Subどう修正すればいいでしょうか?

  • 1004 別の名前を入力して下さい。VBAエラー

    作成したマクロは、CSVのカンマで区切られたデーターを、 1)作成する原本をコピーしたシートに値で貼付け(手動) 2)データータブの区切り位置指定ウィザードで指定(マクロボタン作成/標準モジュール)。 3)関数と書式設定で文字A1=B3(VBA作成のカレンダーで月日を選択)+C3(関数で指定の文字) ※VBA作成のカレンダーは以下の井上様作成のカレンダーを設置しました。 https://www.asahi-net.or.jp/~ef2o-inue/download/sub09_020_025.html 4)A1の文字をシート名に、また同じシート名が既にある場合、シート名(数字追加)をVBAで作成。 5)B3の月日変更に伴ってA1自動変更時、シート名も再度変更。その際、同じシート名が既にある場合、シート名(数字追加)をVBAで作成。 現在、1~3だけであればエラー無。4~5を作成しましたが、 「ActiveSheet.Name = ActiveSheet.Range("$A$1")」でエラーがでます。 まずはこのエラーの解決方法を教えてほしいです。 最終的には1でCSVからコピーして(手動)、A13をクリックしたイベント?VBAで、値で貼付けから先総て自動でできるとうれしいです。難しいでしょうか? Excel2013 Windows10です。 Excelファイルをウェブ上に上げました。下記アドレスになります。 https://drive.google.com/file/d/1u-SPH2FdThyVPbu7_ddbKl0mts2_D4pb/view?usp=sharing sheet4とsheet5のシートモジュールは同じです。sheet6のみ違うやり方を記載しています。 どちらがよいのかわからず、途中になっています。 どうぞ宜しくお願い致します。

  • VBA コピー&ペースト

    次の作業をVBAでマクロを組みたいのですが、どのような構文にすればよいでしょうか。VBA初心者のため、お知恵を拝借させてください。 [目的] 1.ブックA(コピー先)に設定したハイパーリンク先のブックB(コピー元)へジャンプ 2.ブックBへジャンプ後、特定のセルの値をコピー 3.コピーした値をブックAの特定セルへペースト 4. 1.~3.の作業をリピート 対象は、上の作業が未完(ブックAのペースト先のセルがブランク)のもの [詳細] ・ブックB(リンク先)の保存先はサーバー ・リンク先はブックBの特定のシート ・ブックAで設定したハイパーリンクのセルの値がリンク先のシート名 ・ブックBは複数、リンク先のシートも複数(ハイパーリンクごとにリンク先が異なる) ・ブックBにはマクロが設定、開くたびにマクロ有効無効のメッセージ(Excel2003のため) ・コピペする項目は3つ ・ブックA,Bともに開いた状態で、2.~4.のリピートというマクロでも構いません。 以上ですが、他に情報が必要でしたらお申しつけください。 よろしくお願いいたします。

  • Excelで参照のセル値の変化でVBAを実行する

    Excelで別シートの値を参照しているセル値の変化でVBA実行イベントを起こすにはどういう方法があるのでしょうか。 例えばSheet1のA1は、Sheet2のA1の最初の4文字を参照にしているとします。この場合、Sheet1のA1の中は『=LEFT(Sheet2!A1,4)』です。 これでSheet1のA1の参照結果が変化すればVBAが実行される方法のアドバイスを頂きたいです。 調べて見たらSheet3を作業シートにして、Sheet3の方でSheet1のA1を参照にしてCalculate(シートが再計算された時に発生)イベントで実行するという一つの手を見つけましたが、他にもスマートな良い方法があるのか気になったので質問させてもらいました。よろしくお願いします。

  • エクセルVBAで#N/Aのようなエラー値を含むセルの検出は

    エクセルVBAでセルに#N/Aのようなエラー値を含む場合Ifを使った構文で制御したいのですが、エラー値であるかどうかを調査するにはどうすれば良いでしょうか。教えてください。

  • Excel VBA 57121のエラー

    最近のWindows Updateのあと、Excel 2003のVBAで エラー 57121が 表示されるのですが、なにか情報はありませんか? シート名を取得する簡単なVBAなのに... s=sheets("テスト").name Updateで今まで動いていたマクロがうごかなくなると Updateと言うより ウィルスだよねww

  • VBAの構文をお願いします Excelです

    宜しくお願いいたします。 Rigth関数をVBAで行うときの構文教えてください。 Sheet1のA1セルに123456があります、Sheet2のA1セルに右から2つすなわち56をコピーするにはどのように構文すればよいのですか。Lefe、Midもこれが分かればできると思います。

専門家に質問してみよう