2016-11-09 33 views
0

我正在處理VBA代碼以將選項卡上的所有內容合併到一個選項卡中。所有的作品很好,除了我不能得到包含TAB文件名稱。我有超過200多個選項卡,我需要從它們的所有內容放在一個選項卡上(數據結構相同),但也包括列名稱(最好是A列)中的選項卡名稱。這是我迄今爲止:VBA將所有TAB合併爲一個,幷包含TAB名稱

Sub FuLL_LIST_MERGE() 
' 
' FuLL_LIST_MERGE Macro 
' 

' 
Dim ws As Worksheet 
ActiveSheet.UsedRange.Offset(0).Clear 
For Each ws In ActiveWorkbook.Worksheets 
If ws.Name <> ActiveSheet.Name Then 
ws.UsedRange.Copy 
Range("A65536").End(xlUp).Offset(1, 0).Select 
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 
False, Transpose:=False 
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ 
False, Transpose:=False 
End If 
Next 
End Sub 

回答

0

試試這個

Sub FuLL_LIST_MERGE() 
' 
' FuLL_LIST_MERGE Macro 

Dim ws As Worksheet, n As Long 

ActiveSheet.UsedRange.Offset(0).Clear 

For Each ws In ActiveWorkbook.Worksheets 
    If ws.Name <> ActiveSheet.Name Then 
     n = ws.Range("A" & Rows.Count).End(xlUp).Row 
     ws.Range("A1").Resize(n, ws.UsedRange.Columns.Count).Copy 
     Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues 
     Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlFormats 
     Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(n) = ws.Name 
    End If 
Next 

End Sub 
0

感謝@SJR!但是,在每個表單中,都有1到100行,但有200行格式化(有行邊界等)。所以現在發生的事情是,這個腳本需要200行TAB名稱(因爲每行中格式化了200行),但它只需要1-100個文本。換句話說,我從所有工作表中粘貼了1753行,但A列中有40042行帶有日期。

Sub FuLL_LIST_MERGE() 
' 
' FuLL_LIST_MERGE Macro 

Dim ws As Worksheet 

ActiveSheet.UsedRange.Offset(0).Clear 

For Each ws In ActiveWorkbook.Worksheets 
    If ws.Name <> ActiveSheet.Name Then 
     ws.UsedRange.Copy 
     Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues 

     Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(ws.UsedRange.Rows.Count) = ws.Name 
    End If 
Next 

End Sub 
+0

Couln't得到這個工作,所以用明文格式VBA和它的工作......但是它會是不錯的解決方案如何得到它不清除格式的工作,如果任何人有一段時間了... '子clear_format() 昏暗WS作爲工作表 ActiveSheet.UsedRange.Offset(0).Clear 對於每個WS在ActiveWorkbook.Worksheets 如果ws.Name <> ActiveSheet.Name然後 ws.Cells.ClearFormats End If Next End Sub' – Freedox

+0

OK,修改了上面的代碼。如果數據列的數量是固定的,可以調整以納入該數據,但修改應至少不復制已格式化的空行。 – SJR

+0

工程就像一個魅力! @SJT非常感謝你! – Freedox