VBA将所有TAB合并为一个,并包含TAB名称
问题描述:
我正在处理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
答
试试这个
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
答
感谢@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
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
OK,修改了上面的代码。如果数据列的数量是固定的,可以调整以纳入该数据,但修改应至少不复制已格式化的空行。 – SJR
工程就像一个魅力! @SJT非常感谢你! – Freedox