2015-11-06 51 views
1

我想更改Worksheet的名稱取決於我擁有的文件。它應該有「File1」或「File2」工作表。但是當我嘗試使用更改的工作表名稱時出現「超出範圍」的錯誤,因此這意味着if語句中的代碼無法正常工作,請幫助我與此。使用If語句不能更改工作表的名稱

Dim wsSheet As Worksheet 
Dim wsSheet2 As Worksheet 
On Error Resume Next 
Set wsSheet = Sheets("File1") 
Set wsSheet2 = Sheets("File2") 
On Error GoTo 0 
If Not wsSheet Is Nothing Then 
Sheets("Sheet1").Name = "Sheet1ChangedFile1" 
Sheets("Sheet2").Name = "Sheet2ChangedFile1" 
Else 
If Not wsSheet2 Is Nothing Then 
Sheets("Sheet1").Name = "Sheet1ChangedFile2" 
Sheets("Sheet2").Name = "Sheet2ChangedFile2" 
End If 
End If 

Sheets("Sheet1ChangedFile2").Select 'Here I get an error 
+0

我的猜測是,wsSheet2是沒有什麼是真實的。所以你從來沒有擊中第二條語句 –

+0

,但事情是我有這個工作表,它適用於第一個if語句 –

+0

第一個'If'將Sheet1的名稱設置爲Sheet1Changed ** File1 **。如果Sheet1已重命名爲Sheet1Changed ** File1 **,則無法嘗試選擇Sheet1Changed ** File2 **。 – Jeeped

回答

1

問題是else語句,如果符合第一if語句,你永遠也達不到其他部分,所以用這個來代替:

Dim wsSheet As Worksheet 
Dim wsSheet2 As Worksheet 
On Error Resume Next 
Set wsSheet = Sheets("File1") 
Set wsSheet2 = Sheets("File2") 
On Error GoTo 0 
If Not wsSheet Is Nothing Then 
Sheets("Sheet1").Name = "Sheet1ChangedFile1" 
Sheets("Sheet2").Name = "Sheet2ChangedFile1" 
End If 'Changed the Else to End If 
If Not wsSheet2 Is Nothing Then 
Sheets("Sheet1").Name = "Sheet1ChangedFile2" 
Sheets("Sheet2").Name = "Sheet2ChangedFile2" 
End If 

Sheets("Sheet1ChangedFile2").Select 
+0

謝謝,它解決了! –