![如何根据我想要的目标字段复制和粘贴不断变化的原始值](https://linux22.com/image/1537305/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E6%88%91%E6%83%B3%E8%A6%81%E7%9A%84%E7%9B%AE%E6%A0%87%E5%AD%97%E6%AE%B5%E5%A4%8D%E5%88%B6%E5%92%8C%E7%B2%98%E8%B4%B4%E4%B8%8D%E6%96%AD%E5%8F%98%E5%8C%96%E7%9A%84%E5%8E%9F%E5%A7%8B%E5%80%BC.png)
在 Excel 中我有一组每天变化的数据,我们将其称为“daily_data”。
我需要将这些数据复制并粘贴到相应的星期几字段中。手动操作很容易,但我每天都要运行几份这样的报告。
我正在尝试使这个过程自动化。
例如,我打开文件,它显示了星期一的 daily_data 信息。我希望它将这些数据复制并粘贴到星期一的静态字段中,同时将星期二到星期五留空。然后第二天它显示星期二的 daily_data。我希望它将数据复制到星期二的静态字段中,同时将星期三到星期五保留原样。所以现在我可以看到星期一和星期二的数据。依此类推,直到本周剩余时间。(我觉得我的描述有点过了。只是想说清楚)。
如果我可以跳过每天将所有 daily_data 字段复制并粘贴到相应日期的步骤,那么我就可以节省大量时间。
答案1
您可以使用 VBA 宏来实现这一点,该宏将输入列中的值复制到根据当前星期几选择的列。然后只需将宏绑定到打开事件即可。
我们假设这里显示的布局:
Private Sub Workbook_Open()
columnOffset = 2
dow = Weekday(Now, vbMonday)
col = dow + columnOffset
' If data already exists, don't do anything
If Cells(2, col).Value = "" Then
' Copy the first column except the first cell
Intersect(Columns(1), UsedRange.Offset(1)).Copy Cells(2, col)
End If
End Sub