私は質問があります、私は1つの基本的なシートに行を持っています、私は新しいシートを作成し、それぞれの新しいシートは私が名前として使用したいセルA3の値を持っています私の新しいアクティブシート。ここで問題は始まります。シートの名前は31の符号のみを持つことができますが、A3の値の一部は31の符号のみをカットしているため繰り返されます。例えば、私はビジネスと銀行向けのA3テクノロジーアプライアンスとして、そしてビジネスとプライベートのための次の1つのテクノロジーアプライアンスとして1枚のシートを持っています。だから私が31の看板を取ると、両方のシートが同じ名前になり、シートの名前が既に取られているというエラーが出る。私のループでは1000行を繰り返し、繰り返しの問題が700回現れることを確認したので、31の代わりに左の28の数字から切り捨てて、各シートに固有の名前を付けるために名前番号を追加することを考えました。コード(名前を変更するだけの部分)の一部:アクティブシートの一意性VBAエクセル
Dim name As String
Dim i As Integer
Dim number_repeated As Integer
Dim name_signs As Integer
name = ActiveSheet.Range("a3")
name = Left(name, 31)
For i = 1 To Worksheets.Count
If name <> Worksheets(i).Name Then
ActiveSheet.Name = name
Else
name_signs = ActiveSheet.Range("a3")
name_signs = Left(name_signs, 28)
name_signs = name_signs + CStr(number_repeated)
ActiveSheet.Name = name_signs
number_repeated = 1
number_repeated = number_repeated + 1
End If
Next i
各単語?次に、実名ではなくコードとしてシートに名前を付けるだけです。例えば。実際の名前として「重要な月報」を、コード(およびシート名)として「MROSRI」を指定します。そして、あなたのセル 'A3'では正しい値を得るために' VLOOKUP'を使うことができます。 – RCaetano
例のように最初の文字を取り出す機能はありますか?またはあなたは1つを書く方法を持っていますか?私はVBAについてはかなり新しくなっていますが、手動で行うと1000件に時間がかかりすぎます。 –
私の答えをチェックし、それがあなたを助けるかどうか;) – RCaetano