'复制第二列至今天日期所在的那一列的下一列和AL列,第2行至第372行
时间: 2024-03-25 13:38:42 浏览: 45
您可以将第18行的代码修改为以下内容,将复制范围修改为第二列至今天日期所在的那一列的下一列和AL列,第2行至第372行:
```
'Set copyRange = ws.Range(ws.Cells(2, "B"), ws.Cells(372, lastCol + 1))
Set copyRange = ws.Range(ws.Cells(2, "C"), ws.Cells(372, lastCol + 1).Resize(, 38))
```
这样就可以将第二列至今天日期所在的那一列的下一列和AL列,第2行至第372行的内容复制到其他位置了。希望这能帮到您!
相关问题
在G7至AK7找到今日日期后 复制B列至今日日期那一列 再加上AL列,第2行至372行 提示复制成功
可以使用以下代码实现:
```
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` 函数提示用户复制成功。
使用VBA编写一段复制指定区域的代码,要求复制区域由B列至单元格数据为今日日期那一列再加上AL列,行为第2行至372行
可以使用以下代码实现:
```
Sub CopyRange()
Dim today As Date
today = Date
Dim lastColumn As Long
lastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Dim endColumn As Long
endColumn = WorksheetFunction.Match(today, Range("B2:B372"), 0) + 38 'AL列的列号是38
Range("B2", Cells(372, endColumn)).Copy
End Sub
```
代码中首先定义了一个变量 `today` 用于存储今日日期,然后使用 `Cells` 和 `Columns.Count` 获取最后一列的列号,接着使用 `WorksheetFunction.Match` 函数查找今日日期在 B 列中的位置,并加上 38 得到复制区域的最后一列的列号,最后使用 `Range` 和 `Copy` 复制指定区域。
阅读全文