Vba 根据另一页上的列表复制和粘贴特定列
我在“Sheet2”上有一个预先确定的列标题列表。我想写一个宏来循环这些,在“Sheet1”上搜索匹配的列标题,并将它们粘贴到“Sheet3”上 非常感谢:) 到目前为止,我提出了以下建议:Vba 根据另一页上的列表复制和粘贴特定列,vba,excel,Vba,Excel,我在“Sheet2”上有一个预先确定的列标题列表。我想写一个宏来循环这些,在“Sheet1”上搜索匹配的列标题,并将它们粘贴到“Sheet3”上 非常感谢:) 到目前为止,我提出了以下建议: Sub cppp() Range("K2").Select Selection.AutoFill Destination:=Range("K2:K10"), Type:=xlFillDefault Dim lr As Long, i As Long lr = Range("K2").End(
Sub cppp()
Range("K2").Select Selection.AutoFill Destination:=Range("K2:K10"), Type:=xlFillDefault
Dim lr As Long, i As Long
lr = Range("K2").End(xlDown).Row
For i = lr To 1 Step -1
If Cells(lr, 11).Value = Range("A2") Then 'STUCK
End If
lr = lr - 1
Next i
End Sub
看看这对你有用吗
Sub sample()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim rngLookupValues As Range
Dim rngHeaders As Range
Dim cValue As Range
Dim rngCellsToCopy As Range
Dim lngColumnToCopy As Long
Dim lngCurFirstEmptyColumn As Long
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
Set sh3 = Sheets("Sheet3")
With sh2
Set rngLookupValues = .Range("A1", .Range("A" & .Rows.Count).End(xlUp))
End With
With sh1
Set rngHeaders = .Range("A1", .Range("A1").End(xlToRight))
End With
For Each cValue In rngLookupValues
lngColumnToCopy = WorksheetFunction.Match(cValue, rngHeaders, 0)
With sh1
Set rngCellsToCopy = .Range(.Cells(1, lngColumnToCopy), .Cells(Rows.Count, lngColumnToCopy).End(xlUp))
End With
With sh3
lngCurFirstEmptyColumn = .Cells(1, Columns.Count).End(xlToLeft).Column + 1
End With
sh3.Cells(1, lngCurFirstEmptyColumn).Resize(rngCellsToCopy.Rows.Count).Value = rngCellsToCopy.Value
Next cValue
With sh3.Range("A1")
If Len(.Value) < 1 Then
.EntireColumn.Delete
End If
End With
End Sub
子样本()
Dim sh1作为工作表
Dim sh2 As工作表
Dim sh3 As工作表
将rngLookupValues设置为范围
作为范围的调光器
变暗C值作为范围
变暗RNG单元格复制为范围
Dim LNGColumntopy尽可能长
Dim lngCurFirstEmptyColumn尽可能长
设置sh1=板材(“板材1”)
设置sh2=板材(“板材2”)
设置sh3=板材(“板材3”)
含sh2
设置rngLookupValues=.Range(“A1”、.Range(“A”&.Rows.Count).End(xlUp))
以
与sh1
设置RNG引线=.Range(“A1”),.Range(“A1”).End(xlToRight))
以
对于rngLookupValues中的每个cValue
lngColumnToCopy=工作表函数.Match(cValue,rngHeaders,0)
与sh1
设置rngCellsToCopy=.Range(.Cells(1,lngcolumntopy),.Cells(Rows.Count,lngcolumntopy).End(xlUp))
以
用sh3
lngCurFirstEmptyColumn=.Cells(1,Columns.Count).End(xlToLeft).Column+1
以
sh3.Cells(1,lngCurFirstEmptyColumn)。调整大小(rngCellsToCopy.Rows.Count)。Value=rngCellsToCopy.Value
下一个C值
带sh3.量程(“A1”)
如果Len(.Value)<1,则
.entireclumn.Delete
如果结束
以
端接头
您试过什么了吗,或者只是想告诉我们您的意图?哎呀,对不起。清晨。Sub cppp()范围(“K2”)。选择Selection.AutoFill Destination:=范围(“K2:K10”),键入:=xlFillDefault Dim lr As Long,i As Long lr=范围(“K2”)。结束(xlDown)。i=lr到1步的行-1 If单元格(lr,11)。值=范围(“A2”)然后,如果lr=lr-1,则“卡住结束”。下一步,我结束Sub。我尝试先在一个页面内部完成它,但没有成功。我的技能已经过时了。很抱歉,谢谢你的帮助。我用F8完成了,但由于某些原因没有结果。我会到处玩,这看起来很有希望!你可以随意分享我试图上传到学校使用的ftp的链接,但我不能。关于如何链接Google Drive、DropBox、Box.Com、wetransfer.Com、wikisend.Com、fileswap.Com、MediaFire.Com的想法太多了。所有的网站都提供免费共享文件或托管文件的功能,我认为media fire甚至不需要你在我上次检查时注册。您可以在不登录的情况下上载,然后共享链接。试试其中一个。你是一个了不起的帮助,但实际上每个网站都不允许工作,被它阻止了。如果需要的话,今晚我会想办法的。谢谢。