Sub copyRange() Dim ws As Worksheet Dim lastCol As Long Dim todayDate As Date '声明一个新变量,避免与内置函数 Today() 冲突 Dim copyRange As Range '声明一个新变量,存储需要复制的范围 Dim searchRange As Range '声明一个新变量,存储查找范围 '获取当前日期 todayDate = Date '指定工作表 Set ws = ThisWorkbook.Worksheets("中转场地效益看板") '指定查找范围为第7行至第7行的最后一列 Set searchRange = ws.Range("G7:AK7") '查找今天日期所在的列号,如果不存在则给出提示并退出 If searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then MsgBox "今天的日期没有找到!" Exit Sub Else lastCol = searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole).Column End If '复制第一列至今天日期所在的那一列的下一列,第2行至第372行 Set copyRange = ws.Range(ws.Cells(2, "B"), ws.Cells(372, lastCol + 1)) copyRange.Copy '弹出提示框 MsgBox "复制成功!" End Sub使这段代码复制今日日期所在那一列和AL列
时间: 2024-02-14 12:17:21 浏览: 92
您可以按照以下步骤修改代码,实现复制今日日期所在那一列和AL列:
1. 将第8行中的查找范围修改为G7:AL7,包括今日日期所在的那一列和AL列;
2. 将第18行中的复制范围修改为第一列至今日日期所在的那一列和AL列,第2行至第372行;
3. 将第21行中的提示框文字修改为“复制成功!”。
修改后的代码如下:
```
Sub copyRange()
Dim ws As Worksheet
Dim lastCol As Long
Dim todayDate As Date '声明一个新变量,避免与内置函数 Today() 冲突
Dim copyRange As Range '声明一个新变量,存储需要复制的范围
Dim searchRange As Range '声明一个新变量,存储查找范围
'获取当前日期
todayDate = Date
'指定工作表
Set ws = ThisWorkbook.Worksheets("中转场地效益看板")
'指定查找范围为第7行至第7行的最后一列,包括今日日期所在的那一列和AL列
Set searchRange = ws.Range("G7:AL7")
'查找今天日期所在的列号,如果不存在则给出提示并退出
If searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
MsgBox "今天的日期没有找到!"
Exit Sub
Else
lastCol = searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole).Column
End If
'复制第一列至今天日期所在的那一列和AL列的下一列,第2行至第372行
Set copyRange = ws.Range(ws.Cells(2, "B"), ws.Cells(372, lastCol + 1).Resize(, 38))
copyRange.Copy
'弹出提示框
MsgBox "复制成功!"
End Sub
```
希望能够帮到您!
阅读全文