注册 登录
编程论坛 Excel/VBA论坛

求助如何编辑一个宏代码解决以下问题?

黑与白的我 发布于 2023-04-09 21:14, 674 次点击
只有本站会员才能查看附件,请 登录

如图,在H1列的公式是=today,只会显示今天的日期。如何创造一个宏代码,在点击“命令”按钮后让下面项目的数据按照日期和顺序复制到边上员工工作量内?比方说4.1日时将数据自动复制到C2到C11,在4.2日自动复制到D2到D11?
2 回复
#2
厨师王德榜2023-04-10 12:22
取H列的值到数组A
从C1/D1/E1 ... 开始循环查找日期值,看哪一列的日期值与数组A(1,1)的值相等?
若找到日期值相等的格子,则可以确定:把数据输出到哪一列 ?
再用resize()方法,把数组的内容输出到这一列.

大致思路就是这样.有了思路,代码不难写.
#3
东海ECS2023-04-15 14:05
以下是示例代码,请根据实际情况进行修改并运行宏:

程序代码:
Sub CopyData()

    ' Define source and destination ranges
    Dim sourceRange As Range
    Dim destRange As Range
    Set sourceRange = Range("A2:A11")
    Set destRange = Range("C2:C11").Offset(0, ActiveSheet.Range("H1").Value - Date)
   
    ' Copy data from source to destination
    destRange.Value = sourceRange.Value

End Sub

代码说明:

宏定义了一个名为"CopyData"的子程序。

通过定义源范围和目标范围变量来指定要进行复制的数据。

获取 H1 单元格的日期值并计算出相对偏移量。

复制数据从源范围到目标范围,并将值覆盖目标范围中的任何现有值。

点击“命令”按钮时,该宏会在活动工作表中执行,将数据按日期复制到相应的列中。
1