- ベストアンサー
エクセルで、D6からK6のセルにある文字列をそのままシート名にしたいで
エクセルで、D6からK6のセルにある文字列をそのままシート名にしたいですがうまくいきません。型が違いますとのエラー表示ですが意味がわかりません。 Sub 内訳明細シート名に現場名反映() ActiveSheet.Name = ActiveSheet.Range("D6:K6").Value End Sub この式をどう修正したらよいでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です! 投稿した後でNo.1さんの補足を読ませてもらいました。 安直な方法ですが ActiveSheet.Name = Range("D6") & Range("E6") & Range("F6") & Range("G6") & Range("H6") & Range("i6") & Range("J6") & Range("K6") ではどうでしょうか? 他に良い方法があれば読み流してくださいね。m(__)m
その他の回答 (3)
- Tip3000
- ベストアンサー率9% (5/55)
♯3氏の書かれている方法がそれにあたります が、.Valueか.Textかを付けたほうがいいですね
お礼
丁寧な回答ありがとうございました!!勉強になりました(^^)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに回答は出ていると思いますが・・・ Sheet名は複数セルを対象にできないはずです。 もしかしてD6~K6セルを結合しているのですかね? そうであれば ActiveSheet.Name = Range("D6") にしてみてください。 以上、参考になれば良いのですが 外していたらごめんなさいね。m(__)m
- Tip3000
- ベストアンサー率9% (5/55)
シートは1つです なのに対象となるセルが複数なのはなぜですか? ActiveSheet.Name = ActiveSheet.Range("D6").Value ならばうまくいきますが・・
補足
複数のセル内の文字列をつなげて一つのシート名にしたいのです。 厳しいでしょうか・・。
お礼
ありがとうございます。&を付けるという手があったのですね・・勉強になりました(^^)