2016-08-25 60 views
0

有人可以幫助我。在列中複製工作表名稱(來自循環代碼)

有以下代碼堆棧從倍數工作表中的信息爲一個(「數據庫」) - (環路)

它是不工作的唯一的事情是最後行動的工作周的名字複製的「數據庫「列」Aw「。

宏不會帶來任何錯誤,但工作表名稱沒有出現在列「AW」

什麼建議嗎?

Sub Update() 
' Update Templates 
    Dim All As Worksheet 
    Dim J As Integer 
    Dim Last As Long 
    Dim CopyRng As Range 

    Application.ScreenUpdating = False 

    ' Update Consol 
    On Error Resume Next 

    Sheets("Database").Select 
    Range("A2:AL1048576").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Application.CutCopyMode = False 
    Selection.Clear 

    For J = 6 To Sheets.Count 
     Sheets(J).Activate 
     Range("A2:AL2").Select 
     Range(Selection, Selection.End(xlDown)).Select 
     Selection.Copy 

     With Sheets("Database").Range("A1048576").End(xlUp)(2) 
      .PasteSpecial xlPasteValues 

      Database.Cells(Last + 1, "AW").Resize(CopyRng.Rows.Count).Value = All.Name 

     End With 

    Next 

End Sub 
+1

您將列AW設置爲'All.Name',其中'All'是您從未設置過的Worksheet對象。這會產生一個錯誤,但是如果你有'On Error Resume Next',那麼錯誤將被忽略,並且下一張表格將被激活。在同一行中,您還將範圍設置爲將All's Name的值複製爲CopyRng範圍的大小,但同樣,您不在任何位置設置CopyRng。這也會導致錯誤。 – YowE3K

回答

0

試試這個(我刪除了所有的選項,因爲他們似乎沒有必要):

Sub Update() 
'Update Templates 
Dim All As String 
Dim j As Integer 
Dim Last As Long 'Missing value 
Dim CopyRng As Long 'No need for Range in this Sub 

Application.ScreenUpdating = False 

' Update Consol 
On Error Resume Next 

With ActiveWorkbook 'modify 
For j = 6 To .Sheets.Count 
    .Sheets(j).Range("A2:AL" & _ 
    .Sheets(j).Range("A2:AL2").End(xlDown).Row).Copy 
CopyRng = .Sheets(j).Range("A2:AL2").End(xlDown).Row - 1 
All = .Sheets(j).Name 
End With 

    With .Sheets("Database").Range("A1048576").End(xlUp)(2) 
     .PasteSpecial xlPasteValues 

'EDIT: 
     debug.print All 'check immediate window for correct string 
     .Sheets("Database").Cells(Last + 1, _ 
     "AW").Value = All 
'  .Sheets("Database").Cells(Last + 1, _ 
'  "AW").Resize(CopyRng).Value = All 
    End With 

Next 

End Sub 

不知道什麼是「最後」 var是,所以不要忘記來解決它在運行代碼之前。希望這可以幫助。

+0

謝謝你的回答。 但仍然無法正常工作。不要複製標記欄中的標籤名稱 – Crystal

相關問題