私の質問は実際には単純ですが、私は解決策を見つけることができません。 私は、ユーザーが変更できる異なる名前のシートをたくさん持っています。私はマクロをしたい、シートのループ(名前)
事実がある:私は、私のVBAプロジェクトの名前は次のようになり、私の最初の2枚分のため、これらのシートの各背景名に与えてくれましたすべてのそれらの特定のシート(私はそれらの14を持っている)をループし、私はこの1つのように、私は別のもののために使用する他のものをループにしたくない:
それがしやすいですユーザーが変更できる名前(私の例では "General" et "Heritage")を使用してSheetsをループします。それにもかかわらず、ユーザーがいつでもこの名前を変更できるようにしたいと思っていれば、私のマクロはシートの新しい名前を認識しません。ユーザーがボタンを押したり、シートの名前を変更するために別のテキストボックスを使用したりする必要はないので、私はこの問題を回避したくありません。
バックグラウンド名(私の例ではS1とS2)をループすることができます。そのようなことをします(次のコードは良くないとわかりますが、例):
Sub Example1()
Dim wksht As Worksheet
For i = 1 To 14
Set wksht = "S" & i
wksht.Cells(1, 1).Value = 1
Next i
End Sub
私は次のコードは、1枚のために働くことを知っている:
Sub Example2()
Dim wksht As Worksheet
Set wksht = S1
wksht.Cells(1, 1).Value = 1
Next i
End Sub
問題は、私の以前のコードではS1では、文字列ではないので、私はループ」使用することはできませんS "& i。私の問題の解決策はありますか?
ワークシートオブジェクトのCodeNameを使用して、指定した名前を確認します。wksht.CodeName = "S1" then ... end if – Sorceri
ありがとう!それは確かに私が探していたCodeName –