Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
ワークシート名を変数で!
投稿日時: 19/10/30 02:08:32
投稿者: アベッチ

初歩的な事かもしれませんが。
現在アクティブになっているメインシートの文字をテストシートに転記したいのですが上手くいきません。
 
conf1シートのC1セルには「テスト」の文字列があり、これはシート名でもあります。
標準モジュールに
Set New1sh = Worksheets("conf1").Range("C1")
として
Worksheets(New1sh).Range("K2") = Range("C19")
としたときに実行時エラー13が表示されてしまいます。
Worksheets("テスト").Range("K2") = Range("C19")
とした時はうまくいきます。
 
出来れば
Worksheets(New1sh).Range("K2") = Range("C19")
ではなく
New1sh.Range("K2") = Range("C19")
と出来るのであればどなたかアドバイスを頂けませんでしょうか。
 
よろしくお願い致します。

回答
投稿日時: 19/10/30 06:17:58
投稿者: simple

> Worksheets(New1sh).Range("K2") = Range("C19")
> としたときに実行時エラー13が表示されてしまいます。

 
エラーになる原因は、
Worksheets(文字列)とすべきなのに
Worksheets(Rangeオブジェクト) としているため。
 

New1sh = Worksheets("conf1").Range("C1").Value
Worksheets(New1sh).Range("K2").Value = Range("C19").Value
とするのがエラー対策です。
 
New1sh.Range("K2").Value = Range("C19").Value
としたいのであれば、
Set New1sh = Worksheets(Worksheets("conf1").Range("C1").Value)
としておきますね。

投稿日時: 19/11/09 22:33:42
投稿者: アベッチ

ご連絡遅くなり失礼致しました。
無事に解決出来ました。
ありがとうございます!!