复制范围不仅是今天日期那一列 是B列至今日日期所在的那一列
时间: 2023-11-04 17:04:24 浏览: 32
非常抱歉,之前理解有误。如果需要复制的是B列至今日日期所在的那一列,可以使用以下代码实现:
```
Sub PasteSpecial()
Dim ws As Worksheet
Dim lastRow As Long
Dim today As Date
'获取当前日期
today = Date
'指定工作表
Set ws = ThisWorkbook.Worksheets("Sheet1")
'获取今天日期所在的列号
Dim todayCol As Long
todayCol = ws.Cells.Find(What:=today, LookIn:=xlValues, LookAt:=xlWhole).Column
'复制B列至今天日期所在的那一列
ws.Range(ws.Cells(1, 2), ws.Cells(lastRow, todayCol)).Copy
'粘贴到指定单元格
ws.Range("D2:D" & lastRow).PasteSpecial xlPasteValues
'清除剪贴板
Application.CutCopyMode = False
'弹出提示框
MsgBox "粘贴成功!"
End Sub
```
在上述代码中,我们首先获取今天日期所在的列号,然后根据该列号和B列的列号来确定需要复制的范围。最后将其粘贴到指定单元格中,并弹出提示框说明粘贴成功。
同样,您可以将此代码复制到Excel的VBA编辑器中,然后将其关联到一个按钮上,这样就可以实现一键粘贴了。