2016-06-27 1 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), 물론 항상 새롭게 만든 시트에 제공하려고하기 때문에 그 오류가 발생하는 이유는 빈). 이 문제를 해결하려면 두 가지 중 하나를 수행하십시오 : 다른 시트의 값을 포함하는 셀에서 이름을 가져 오거나 Sheets ("Blank (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 

기타 문의 사항이 있으시면 언제든지 문의하십시오.