Vba 在可见单元格中复制和粘贴数据

Vba 在可见单元格中复制和粘贴数据,vba,excel,Vba,Excel,我对VBA非常陌生,我想将标题列下方的可用数据从L列剪切到S列,并将其粘贴到同一工作表中的D列到K列。请注意,这是一个过滤范围,数据应仅从可见单元格中剪切并粘贴。此外,请注意,标题列不应包括在内。有人能帮忙吗?以下内容如何: Sub foo() Dim ws As Worksheet: Set ws = Sheets("Sheet1") 'declare and set your worksheet, amend as required LastRow = ws.Cells(ws.Rows.Co

我对VBA非常陌生,我想将标题列下方的可用数据从L列剪切到S列,并将其粘贴到同一工作表中的D列到K列。请注意,这是一个过滤范围,数据应仅从可见单元格中剪切并粘贴。此外,请注意,标题列不应包括在内。有人能帮忙吗?

以下内容如何:

Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set your worksheet, amend as required
LastRow = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row
'get the last row with data on Column L
ws.Range("L2:S" & LastRow).SpecialCells(xlCellTypeVisible).Copy
'copy visible cells
ws.Range("D1").PasteSpecial xlPasteAll
'paste into D1
End Sub
更新:

继您最近的评论之后,我相信以下内容将满足您的期望:

Sub foo()
Dim LastRow As Long
Dim Rng As Range, cell As Range
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set your worksheet, amend as required
LastRow = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row
'get the last row with data on Column L
Set Rng = ws.Range("L2:S" & LastRow).SpecialCells(xlCellTypeVisible)
For Each cell In Rng
    cell.Copy ws.Range(cell.Address).Offset(0, -8)
Next
End Sub

嗨,哈比尔!非常感谢你的帮助!我尝试使用您提供的代码,但数据将粘贴到第一行。同时,它也被粘贴到了不可见的细胞中。但是,必须复制的单元格正在正确复制。为了让您更清楚,如果筛选出的行号是47、60、63和82,我需要将数据从47、60、63和82范围从L列复制到S列,并且必须将它们粘贴到D列到K列的47、60、63和82范围中。如果您需要更多详细信息,请告诉我。此外,我尝试了一些方法。但我不知道如何将数据粘贴到D列到K列的标题单元格下方。希望这能让您更清楚:范围(“S1”)。选择Selection.AutoFilter ActiveSheet.Range($A$1:$U$105”)。AutoFilter字段:=19,Criteria1:=“”范围(“L1:S1”)。选择范围(Selection,Selection.End(xlDown))。选择Selection.Offset(1,0)。调整大小(Selection.Rows.Count-1,Selection.Columns.Count)。使用工作表(“Sheet1”)剪切。AutoFilter.Range范围(“D”和.Offset(1,0)。SpecialCells(xlCellTypeVisible)(1.Row)。选择以OMG结尾!你是个天才,Xabier!非常感谢!!:)@Pret,如果有帮助,请将我的回答标记为答案。谢谢:)我正要去做,Xabier!但我不知道怎么做!我试图搜索论坛,但没有找到任何指导!你能让我知道我应该如何把你的回答标记为答案吗?