2015-11-02 69 views
1

我需要編寫一個宏來創建一個基於命名範圍(ARK_E_TEXAS_LIST)的新工作表。新的工作表名稱將來自命名範圍中的列A,但是,該列將包含空格,但列C將在所有行中都有數據。不幸的是,這是我需要的清單。從包含空格的列表創建並命名新工作表

是否可以創建新工作表並從列A命名並傳遞空白?

 
     A  B   C  
    1 AR0000RK   BLDG CPLX 1 
    2   AR0030RK SUB BLDG 1 
    3   AR0063RK SUB BLDG 2 
    4   AR0082RK SUB BLDG 3 
    5   AR0085RK SUB BLDG 4 
    6   07020850 SUB BLDG 5 
    7 TX0000TY   BLDG CPLX 2 
    8   TX0182TY SUB BLDG 1 
    9   TX0262TY SUB BLDG 2 
    10   07020830 SUB BLDG 3 
    11 AR0021ZZ   BLDG 1 
    12 AR0031ZZ   BLDG 2 
    13 AR0057ZZ   BLDG 3 
    14 AR0062ZZ   BLDG 4 
    15 AR0066ZZ   BLDG 5 
    16 AR0078ZZ   BLDG 6  
    17 AR0079ZZ   BLDG 7 
    18 AR0084ZZ   BLDG 8 
    19 TX0019ZZ   BLDG 9 
    20 TX0126ZZ   BLDG 10 
    21 TX0130ZZ   BLDG 11 
    22 TX0210ZZ   BLDG 12 
    23 TX0404ZZ   BLDG 13 
Sub Create_ARK_E_TEXAS() 
Dim sht As Worksheet 
Dim newSheetName As Range 
Dim dataRange As Range 
Dim Lastrow As Long 

Set sht = ThisWorkbook.Sheets("ARK_E_TEXAS") 
Set newSheetName = sht.Range("A1:A") 
Lastrow = sht.Range("ARK_E_TEXAS_LIST").Rows.Count 
Set dataRange = sht.Range("A1:C" & Lastrow) 

For Each newSheetName In dataRange 
**If newSheetName > 0 Then 
    Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
    Sheets(Sheets.Count).Name = newSheetName.Value ' renames the new worksheet 
    Else: End If** 
    Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
    Sheets(Sheets.Count).Name = newSheetName.Value ' renames the new worksheet 
Next newSheetName 
End Sub 
+0

添加'if'內環路。 – findwindow

回答

-1
For Each newSheetName In dataRange 
    If newSheetName.Value <> "" Then 
     Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
     Sheets(Sheets.Count).Name = newSheetName.Value ' renames the new worksheet 
    End If 
Next newSheetName 
+0

那麼我幾乎有我的更正權利。謝謝你。我不知道它,直到我可以解決我的錯誤newSheetName不拉數據。 – wjwelch1

+0

很高興幫助。如果您的問題已解決,請將答案標記爲已接受。 (點擊勾號):-) – nwhaught

相關問題