整个的复制范围是B2:AL372,但是动态的复制范围是B2至包含当日日期的那一列数据“”变量372
时间: 2024-03-25 18:36:59 浏览: 49
不同数据库之间的表复制
5星 · 资源好评率100%
好的,那么您可以将获取行范围和复制操作合并,使用变量 `lastCol` 来表示包含当日日期的那一列。以下是修改后的代码:
```
Sub CopyRange()
Dim ws As Worksheet
Dim lastRow As Long
Dim lastCol As Long
Dim today As Date
'获取当前日期
today = Date
'指定工作表
Set ws = ThisWorkbook.Worksheets("Sheet1")
'获取最后一行
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Offset(1, 0).Row
'获取今天日期所在的列号
lastCol = ws.Cells.Find(What:=today, LookIn:=xlValues, LookAt:=xlWhole).Column
'复制B列至今天日期所在的那一列
ws.Range(ws.Cells(2, 2), ws.Cells(lastRow, lastCol)).Copy
'清除剪贴板
Application.CutCopyMode = False
'弹出提示框
MsgBox "复制成功!"
End Sub
```
在上述代码中,我们首先获取了包含数据的最后一行,然后根据该行数和今天日期所在的列号确定了需要复制的范围。最后将其复制到剪贴板中,并弹出提示框说明复制成功。
您可以将此代码复制到Excel的VBA编辑器中,并将其关联到一个按钮上,这样就可以实现一键复制了。
阅读全文