2016-06-27 2 views
0

セル値をコピーし、セル値ごとにそのワークシートの名前を変更しようとしています。セルは名前を変更するとvbaを使用してワークシートがExcelに変換される

Sub Button1_Click() 

'Set datasheet = Application.ActiveSheet 
Dim row As Integer 
Dim col As Integer 

row = 3 
Column = 12 
Do Until Sheets("BOM").Cells(row, Column) = "" 
Sheets("Blank").Select 
Application.DisplayAlerts = False 
Sheets("Blank").Copy After:=Sheets(1) 
Application.DisplayAlerts = False 
Sheets("BOM").Select 
Sheets("Blank (2)").Select 

Sheets("Blank (2)").name = Cells(row, Column).Value ==> Code breaks here 
row = row + 1 
Loop 

End Sub 
+0

エラーとは何ですか?そして、どのラインですか? – GibralterTop

答えて

0

はあなたが原因

次にエラーを取得しているほとんどのあなたの新しいシート名が空白のシートの名前を変更しながら、次のコードは、エラーをポップ 刺さ/整数が含まれます。 新しいシート名は31文字を超えています。 以下の文字が含まれています: \/? * [ or ]

これらのいずれかの回避策はありません。新しい名前が有効な文字列であることを確認してください。

+0

有効な文字列 –

+0

がエラーを示すシート名を投稿しています。 – cyboashu

+0

名前を変更する前のシート名はBlank(2)です。セルの内容をコピーし、そのセルの内容でこのシートの名前を変更しようとしています。細胞の内容はaRS2534 –

0

Dinesh、 このエラーが発生する理由は、シートに空の名前(新しく作成されたシートのセル(3、12)空の)。この問題を解決するには、別のシートの値を含むセルから名前を引き出すか、またはシート( "ブランク(2)")に値を入力します。名前。両方のオプションは次のとおりです。

Sub Button1_Click() 
    'Set datasheet = Application.ActiveSheet 
    Dim row As Integer 
    Dim col As Integer 

    row = 3 
    Column = 12 
    Do Until Sheets("BOM").Cells(row, Column) = "" 
     Sheets("Blank").Select 
     Application.DisplayAlerts = False 
     Sheets("Blank").Copy After:=Sheets(1) 
     Application.DisplayAlerts = False 
     Sheets("BOM").Select 
     Sheets("Blank (2)").Select 

     Sheets("Blank (2)").Cells(row, Column).Value = "Some_Sheet_Name" ' <--Option #2 
     Sheets("Blank (2)").Name = Cells(row, Column).Value    ' <--Option #2 

     ' Sheets("Blank (2)").Name = Sheets("BOM").Cells(row, Column).Value ' <--Option #1 

     row = row + 1 
    Loop 
End Sub 

その他のご質問は、お気軽にお尋ねください。

関連する問題