2016-11-30 36 views
0

我正在使用下面的代碼重命名工作表。用下拉列表重命名工作表

Option Explicit 

Sub RenWSs() 

    Dim ws As Worksheet 
    Dim shtName 
    Dim newName As String 
    Dim i As Integer 
    Dim RngStr As String 

    RngStr = Application.InputBox(prompt:="Select the Range for the new Sheet's name", Type:=2) 
    For Each ws In Worksheets 
     With ws 
      If Trim(.Range(RngStr)) <> "" Then 
       shtName = Split(Trim(.Range(RngStr)), " ") 
       newName = shtName(0) 
       On Error GoTo ws_name_error 
       .Name = .Range(RngStr) 
       GoTo done 
repeat: 
       .Name = newName & i 
       GoTo done 
ws_name_error: 
       i = i + 1 
       Resume repeat 
      End If 
     End With 
     On Error GoTo 0 
done: 
    Next 

End Sub 

在這裏,我通過輸入框選擇新的名稱,它的工作正常。現在我想要的是,在調用輸入框之前,必須完成下面的過程。

我在下拉列表中有名稱,下拉列表中的每個名稱都將在所有工作表中像J16一樣逐一更新,即單元格。

請幫我

+0

我不明白,你的下拉菜單丟失了什麼和在哪裏?你在每張紙上都有一個單元格「J16」的下拉菜單? –

+0

是的,我在每張紙上都有單元格j16中的下拉列表 –

+0

這些dron down應該有什麼來源或價值? –

回答

0

下面的代碼將通過所有ws張LOPP,並修改單元格的「J16」,以「測試1」(只是爲了測試目的)的值。

Option Explicit 


Sub ModifyDropDownValue() 

Dim ws As Worksheet 

For Each ws In Worksheets 
    With ws 
     ' modify the value in cell J16 
     .Range("J16").Value = "Test 1" 
    End With 
Next ws 

End Sub 
+0

感謝您的幫助,其工作正常,但我需要更新40工作表中的公司名稱(名稱將不同),而不是把Test1,如何從下拉列表中選擇,如下拉名稱1,下拉名字2 ........... –