我有一个代码,我需要将数据从E列中的过滤单元复制到A列。过滤器由循环完成,因此数据逐个显示。我需要做的就是直接从我的活动单元格中移出一个单元格,但问题是,我不知道下面是什么单元格值,如果我使用偏移量,excel只复制下一个隐藏单元格。
以下是宏如何工作的简要概述:
第一个Cell是E1(标题和活动单元格),下一个单元格是E102(值我必须复制到A102)。
然后循环激活,第一个细胞是E1,然后下一个细胞是E365(复制到A365)。 等等...
下一个值也是不可预测的,因此我无法调用该值。
我尝试过以下代码,但发送密钥似乎无法正常工作
Cells.Find(What:="Header", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 3).Range("A1").Select
Application.Wait Now + TimeValue("00:00:01")
Application.SendKeys "{DOWN}"
Selection.Copy
ActiveCell.Offset(0, -3).Range("A1").Select
Selection.Paste
答案 0 :(得分:0)
通常您需要使用Areas属性,但您有一个特殊情况,您只需要第二个单元格。
'assume column E has been filtered
With Worksheets(ActiveSheet.Name)
With Intersect(.UsedRange, .Range("E:E"))
With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
.SpecialCells(xlCellTypeVisible)(1).Offset(0, -4) = _
.SpecialCells(xlCellTypeVisible)(1).Value
End With
End With
End With
我不知道为什么你的代码会说.Offset(0,-3),因为A列是E列的-4偏移量。