在G7至AK7找到今日日期后 复制B列至今日日期那一列 再加上AL列,第2行至372行 提示复制成功
时间: 2024-03-25 10:40:52 浏览: 76
可以使用以下代码实现:
```
Sub CopyRange()
Dim targetDate As Date
targetDate = Date '要查找的日期,这里先设置为今天的日期
Dim lastColumn As Long
lastColumn = Cells(7, Columns.Count).End(xlToLeft).Column
Dim foundDate As Range
Set foundDate = Range("G7:AK7").Find(targetDate, LookIn:=xlValues, LookAt:=xlWhole) '查找日期
If foundDate Is Nothing Then '如果没找到日期
MsgBox "未找到指定日期!"
Exit Sub '退出程序
End If
'找到日期后的操作
Dim endColumn As Long
endColumn = foundDate.Column
Range("B2", Cells(372, endColumn)).Copy Destination:=Range("B2").Resize(372, endColumn - 1).Offset(0, 6) '复制指定区域
MsgBox "复制成功!"
End Sub
```
代码中首先定义了一个变量 `targetDate` 用于存储要查找的日期,然后使用 `Cells` 和 `Columns.Count` 获取第7行最后一列的列号,接着使用 `Range.Find` 函数查找日期,并将结果存储在 `foundDate` 变量中。如果没有找到日期,就使用 `MsgBox` 函数提示用户并使用 `Exit Sub` 退出程序。如果找到了日期,就使用 `Range` 和 `Copy` 复制指定区域,并将复制的内容粘贴到以 B2 为左上角的单元格中,同时使用 `Resize` 和 `Offset` 函数调整粘贴区域的大小和位置,以使其刚好覆盖要复制的区域。最后使用 `MsgBox` 函数提示用户复制成功。