Excel 将所有图纸中的A列插入新图纸的A列
我想将所有图纸A列中的所有值堆叠到新图纸A列中。根据图纸的不同,这些列的长度不同。我以前成功地插入了列,但它插入了公式而不是列的值,并且它水平插入而不是垂直插入Excel 将所有图纸中的A列插入新图纸的A列,excel,vba,Excel,Vba,我想将所有图纸A列中的所有值堆叠到新图纸A列中。根据图纸的不同,这些列的长度不同。我以前成功地插入了列,但它插入了公式而不是列的值,并且它水平插入而不是垂直插入 Sub Vlookpage() Dim WS As Worksheet Dim i As Integer 'add sheet and name it lookup Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Name = "Lookup"
Sub Vlookpage()
Dim WS As Worksheet
Dim i As Integer
'add sheet and name it lookup
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Lookup"
'take all column "A"s and add them to "vlookup"
For i = 1 To Worksheets.Count - 1
Worksheets(i).Range("A:A").Copy
Worksheets(i).Range("A:A").PasteSpecial Paste:=xlPasteValues
Worksheets(i).Range("A:A").Copy
Worksheets("Lookup").Range("A:A").Insert (xlShiftDown)
Next i
'purge duplicates
Worksheets("Lookup").Range("A:A").RemoveDuplicates
End Sub
列仍在水平插入,而不是堆叠请尝试下一个代码:
Sub Vlookpage()
Dim WS As Worksheet, shLkp As Worksheet, i As Integer
Dim lastRowL As Long, lastRowWs As Long, arrAA
'add sheet and name it lookup
Set shLkp = Sheets.Add(After:=Sheets(Sheets.count))
shLkp.Name = "lookup"
'take all column "A"s and add them to "vlookup"
For Each WS In Worksheets
If WS.Name <> shLkp.Name Then
lastRowWs = WS.Range("A" & rows.count).End(xlUp).row
lastRowL = shLkp.Range("A" & rows.count).End(xlUp).row
arrAA = WS.Range("A1:A" & lastRowWs).Value
shLkp.Range("A" & lastRowL + 1).Resize(UBound(arrAA), 1).Value = arrAA
End If
Next WS
'purge duplicates
shLkp.Range("A:A").RemoveDuplicates
End Sub
Sub-Vlookpage()
Dim WS作为工作表,shLkp作为工作表,i作为整数
调暗lastRowL尽可能长,LastRowls尽可能长,arrAA
'添加工作表并将其命名为查找
设置shLkp=Sheets.Add(之后:=Sheets(Sheets.count))
shLkp.Name=“查找”
'将所有列“A”添加到“vlookup”
对于工作表中的每个WS
如果WS.Name shLkp.Name那么
lastRowWs=WS.Range(“A”&rows.count).End(xlUp).row
lastRowL=shLkp.Range(“A”&rows.count).End(xlUp).row
arrAA=WS.Range(“A1:A”&lastRowWs.Value
shLkp.Range(“A”&lastRowL+1).调整大小(UBound(arrAA),1).值=arrAA
如果结束
下一个WS
'清除重复项
shLkp.范围(“A:A”)。移除的副本
端接头
完美!我对删除重复项做了一些修改,因为有多余的空格,但除此之外,这正是我要找的代码@迈克尔:我只是按照你的代码(推导出的)逻辑去做。那么,我应该理解上面的代码没有回答你的问题吗?@Michael-当你将这个答案评论为“完美!”时,最好也勾选绿色复选标记来接受它。