
製品データを週1回まとめているのですが、データ量が多いため
その都度、製品データのシートを別ファイル(データまとめ)に追加しています。
シートの追加をする際、古いデータシートは削除してから追加します。
シートの追加方法は、マクロで行っています。
Private Sub CommandButton2_Click()
Workbooks("製品データ.xls").Worksheets("データ").Copy _
After:=Workbooks("データまとめ.xls").Worksheets("まとめ")
End Sub
別ファイル(データまとめ)のまとめシートのB2セルには以下の数式が入っています。
INDIRECT関数を使用していますが、シートの削除(製品データ!)を行うと、#REFとなります。
=IF(ISERROR(VLOOKUP($A2,INDIREDCT(製品データ!$B$2:$G$93),4,0)),"データなし",VLOOKUP($A2,INDIRECT(製品データ!$B$2:$G$93),4,0))
数式に何か落ち度があるのでしょうか?
シートの削除・追加をしても、数式がエラーにならない方法を探していますが
#REFの置き換えをする方法しかないのでしょうか?
その他の方法で解決策がありましたら、何卒ご教示お願いします。
No.3ベストアンサー
- 回答日時:
>シートの削除・追加をしても、数式がエラーにならない方法
INDIRECT()関数の最初の引数に「文字列」を指定して参照すればよいです。
× INDIREDCT(製品データ!$B$2:$G$93)
○ INDIREDCT("製品データ!B2:G93")
---
質問者さんの式の
INDIREDCT(製品データ!$B$2:$G$93)
のように書くと、以下と同じ意味になります。
製品データ!$B$2:$G$93
つまり「INDIRECT()関数が無いのと同じ」です。
INDIRECT()関数無しに「直接に参照している」のですから、参照シートが削除されれば「#REF」になるのが当たりまえです。
回答ありがとうございます。
なるほど、絶対参照が邪魔をしてしまってるわけですね?
ただ、下の行にコピーするため、絶対参照をつけているのですが
ご回答いただいた式にすると、一つ一つ式を入力するしかないのでしょうか?
なにぶん行数が多いもので(>人<;)
No.2
- 回答日時:
そうですねー。
一度削除することによって、いくらシート名を同名にしてもうまく噛み合わないのだと思います。#REFを新しくつけたシート名で置き換えたほうが無難だと思いますよ。
回答ありがとうございます。
置き換えが一番楽で、無難なんでしょうかねぇ。
ただ、色んな人が利用するのでなるべく工数が少ないものをと思っているので、この方法もまた最終手段として候補にしておきます(^-^)/
No.1
- 回答日時:
数式の中では「シート名」を使ってシートを識別しますが、
内部計算ではオブジェクト番号で識別されています。
ですから、あるシートを削除してから同一のシート名のシートを追加しても、
数式内ののオブジェクト番号は更新されません。
その数式をどいこかにコピーして、数式を消してからもう一度貼り付けてみては
どうでしょうか?
あらたな数式な対しては新しいオブジェクト番号のシートが参照されます。
回答ありがとうございます。
なるほど、数式を別で準備してもってくる方法がありますね。
最終手段としてその方法をやってみようと思います(^-^)/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで、シートの名前を変えても式にエラーが出ないようにしたい
Excel(エクセル)
-
EXCEL関数でシート名が変わる可能性があるシートのデータを表示させたい
その他(ソフトウェア)
-
EXCELで存在しないシートが参照されている
Excel(エクセル)
-
-
4
Excelでブックをまたいでシートをコピーした時に、元のブックを参照させない方法
その他(Microsoft Office)
-
5
別シートのセルを絶対参照にする
その他(Microsoft Office)
-
6
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
7
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
8
配列数式の解除
Excel(エクセル)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
エラー「#REF」の箇所を置き換える方法
Excel(エクセル)
-
11
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
12
数式中の参照先のシート名の置換について
その他(Microsoft Office)
-
13
条件付書式で「=#N/A」に色を付けたい
Excel(エクセル)
-
14
Excel 計算式の中で使っているシート名を変更しても使えるような式が知りたい
Excel(エクセル)
-
15
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
16
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
17
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
18
エクセル: セルの枠を超えて表示
Excel(エクセル)
-
19
月毎に参照するセルを変更したい。
Excel(エクセル)
-
20
エクセルの折れ線グラフの折れ線が表示できない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
Excelマクロ 差分抽出の方法が...
-
エクセルのカメラ機能について
-
エクセル マクロ "特定の日付...
-
Excelでシートの違うデータでグ...
-
エクセルで名簿を50音で切り分ける
-
EXCEL の表を一行ずつシートに...
-
Googleスプレッドシートフィル...
-
VBAで CTRL+HOMEの位置へ移動...
-
Excelクエリで日付がうまく抽出...
-
CMOS-IC CD4007UBEのnmosfetの...
-
コンボボックスの参照先(ListF...
-
【エクセルマクロ】複数シート...
-
【Excel】マクロでグラフ系列に...
-
エクセルVBAで、特定文字から始...
-
オートフィルタで抽出したデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
EXCELで2つのファイルから重複...
-
エクセル 縦に長い表の印刷時...
-
Googleスプレッドシートフィル...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
時間帯の重複を除いた集計について
-
Excel 売上管理シートに入力し...
-
他のシートの一番下の行データ...
-
エクセルで名簿を50音で切り分ける
-
エクセルVBAで、特定文字から始...
-
Excelファイルの容量が異常に大...
-
【マクロ】同じフォルダ内にあ...
-
エクセル マクロ "特定の日付...
-
EXCEL の表を一行ずつシートに...
おすすめ情報