プロが教える店舗&オフィスのセキュリティ対策術

数式の置換がうまく行かなくて困っています。
「=’4月'!$B$6」のような参照数式を「='5月'!$B$6」のように置換したくて、検索する文字列に「4月」、置換後の文字列に「5月」と入れてもうまく置換されず、「値の更新」ダイアログボックスが開き、キャンセルすると「'[5月]5月'!」となってしない、エラー表示となります。
どのようにするとうまくいくのでしょうか?

A 回答 (6件)

挙動としては、同ブック内に「5月」シートがないということになります。


ある!という場合は、数字が全角半角で違ってないかとか実は半角スペースが後ろに入っていたとかがないかを確認してください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
確認しましたが、その原因ではないようです。

お礼日時:2022/05/04 20:31

そもそもなんですが、実際のシート名で質問されてますか?


ちょっと変えてます、とかならできれば実際のデータを書き込むことをお勧めしますが。(参照式をコピペ推奨)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。すでに解決しました。

お礼日時:2022/05/05 08:51

式 ='4月'!$B$6 が入力されているセルを選択⇒Ctrl+Hを実行⇒


表示された[検索と置換]メニューの[検索する文字列]ボックス内に
「4月」または「4」、[置換後の文字列]ボックス内に「5月」または「5」
を入力⇒[置換]ボタンをパシーッ
で、当該式が ='5月'!$B$6 に変更されましたよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
同じ方法でやっているのですが、結果は質問した内容になってしまいます。

お礼日時:2022/05/04 20:32

希望のこととは違うかもしれませんが、数式の文字の置き換えならば、VBAのマクロを使ってもいいのではないでしょうか。


下記のコードでも、動きます。

Sub 例()
sTgt0 = "4月": sTgt1 = "5月"
For Each a In Range("A1:G83")
b = a.Formula: r = a.Row: c = a.Column
If b <> "" Then
If InStr(b, sTgt0) > 0 Then
b = Replace(b, sTgt0, sTgt1)
a.Formula = b
End If
End If
Next
End Sub

上のコードの中の、「 r = a.Row: c = a.Column」は無用です。
Range("A1:G83")の範囲にある数式で、 "4月"の文字を "5月"に置換えます。
「数式の置換がうまく行かない」の回答画像3
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
マクロで動けばそれでもいいのですが、実行してみたところ、「変数が定義されていません」というエラーメッセージが出ました。

お礼日時:2022/05/04 20:38

とりあえず、「5月」というシート名のシートを作成して【上書き保存】したのちにもう一度チャレンジしてみましょう。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やってみましたが、結果は同じでした。

お礼日時:2022/05/04 20:34

5月と言う名前のシートが無いから。

    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
5月というシートはあります。

お礼日時:2022/05/04 20:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています