excel - 按日期复制和粘贴数据 - excel vba

标签 excel vba

我需要按标准日期将数据从一张纸移动到另一张纸,但我使用 IF 所做的选择只选择了与该标准匹配的最后一个单元格。

这是我到目前为止得到的:

Sub Copiar()

Dim range1 As Range

Set range1 = Range("k56:k58")

For Each cell In range1
   If cell.Value = Range("R55").Value Then
      cell.Offset(0, 2).Select
      Selection.Copy
      Sheets("Plan2").Activate
      Range("r56").Select
      ActiveSheet.Paste
   End If
Next

End Sub

最佳答案

您正在找到它们,问题是每个答案都会覆盖另一张纸上的 R56。这是每次重复循环时都会推进目标单元格的代码 - 并且还避免了选择和激活您正在使用的每个工作表和单元格的不良做法:

Sub Copiar()  
Dim range1 As Range, destin as Range  
Set range1 = Range("k56:k58")
Set destin= Sheets("Plan2").Range("r56")  
For Each cell In range1
   If cell.Value = Range("R55").Value Then
      cell.Offset(0, 2).copy destin
      set destin=destin.offset(1,0)    ' Crucial bit here
   End If
Next  
End Sub

关于excel - 按日期复制和粘贴数据 - excel vba,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241452/

相关文章:

VBA删除超链接重置格式

链接到其他工作簿的 Excel 公式不会自动更新(无需打开源)

excel - 如何在 LibreOffice/Excel 中计算该月的下一个 X 天?

arrays - 循环遍历 VBA 中的特定工作表并复制/粘贴

vba - Powerpoint VBA 更新其他人打开的 excel 文件上的链接而不发出警报

excel - 调用 Sub 和 Application.Run 之间的区别

excel - 使用 VBA 修改动态名称

excel - 如何将格式和公式从 Excel 范围复制到另一个范围?

excel - 我的 VBA Excel 宏中的防病毒误报

sql - MS Access 错误 3622 vba