vba - 从日期开始每 N 个月粘贴一个值的 VBA 代码
问题描述
我正在尝试将一些 VBA 代码放在一起,以便从开始日期起每 n 个月将一个值粘贴到一个单元格中。我在董事会中进行了搜索,发现一些问题很接近,但与我想要做的不完全一样。因此,例如,如果我的日期是 2021 年 7 月 1 日,我希望 VBA 从那以后每 12 个月粘贴一个值。为了让它更复杂一点,我需要粘贴数据的列是季度格式(如 3Q21)。因此,如果我在 Excel 中编写公式,它将类似于:“如果从 2021 年 7 月 1 日起每 12 个月”“Q”&ROUNDUP(MONTH(new date)/3,0)&TEXT(new date,"yy" )=C5,做粘贴,否则什么都不做。我只是不确定如何在 VBA 中表示它。
文章末尾是数据示例。我希望代码采用 D 和 E 列中的日期,在 H 列中找到每个月间隔的日期,如果该日期每 n 个月等于从单元格 M1 开始的格式,则粘贴 I 列中的值。如果第 1 行是空白然后什么也不做。
这是到目前为止的代码 - 这让我获得了粘贴在我需要的第一个单元格中的数据,但不是下一个单元格:
Sub process_data_1()
Set sh = Sheet1
Row = sh.Cells(Rows.Count, 1).End(xlUp).Row
Col = sh.Cells(1, Columns.Count).End(xlToLeft).Column
For i = 3 To Row
For c = 13 To Col
sh.Cells(i, c).ClearContents
If sh.Cells(1, c).Text <> "" Then
If sh.Cells(1, c).Text = sh.Range("F" & i).Text Then
sh.Cells(i, c) = sh.Range("I" & i).Value
End If
If sh.Cells(1, c).Text = sh.Range("G" & i).Text Then
sh.Cells(i, c + 1) = sh.Range("I" & i).Value
End If
End If
Next c
Next i
End Sub
以下是帮助我的问题更有意义的数据
提前致谢
解决方案
推荐阅读
- php - 根据所选付款方式显示隐藏自定义 Woocommerce 结帐字段
- perl - Perl Net::SSH2::Cisco 发送 cmd() 到交换机时读取超时
- xamarin - 使用 Xamarin Forms 停止列表视图上的重复名称
- sql - SQL - 如果一个插入行不正确,则 SQL 语句已终止
- c# - 如何选择然后拆分数据然后选择第二个数据?
- angular - 如何获取位于其他组件中的数组?(模板,*ngComponentOutlet 和 AngularMaterialDialog)
- java - 合并使用不同对象的重复代码
- protocol-buffers - Flink,如何使用 ProtobufSerializer 反序列化 protobuf?
- linux - 剪贴板 api 从 gtk4 中删除了吗?
- android - 使用 cursorAdapter 滚动时复选框丢失状态