我对代码和 Excel VBA 真的很陌生,希望你们能帮助我解决我的问题。非常感谢任何提示、反馈和评论!
在工作簿中,我想确保工作表(Sheet1)的单元格(I1)具有写在不同工作表(即菜单)中的特定日期。我希望 I1 成为起点,随后的日期将通过行(I1、J1、K1 等)发生。在这种情况下,如果我需要的具体日期是 16 年 8 月 15 日,并且我的一张表(表 1)的单元格 I1 写为 2016 年 8 月 20 日,我想知道如何以这样的方式构造我的代码,
如果工作表 1 中的 I1 当前位于 15/8/16,则什么也不做。但是,如果工作表 1 中的 I1 与 15/8/16 的日期不同,则 I1 现在将从 15/8/16 开始,并添加后续日期,直到达到最初在 I1 的默认日期(现在2016 年 8 月 20 日在单元格 N1)。
我目前的代码如下: -
If ActiveSheet.Range("I1") <> MainSht.Range("D6") Then
ActiveSheet.Range("I1") = MainSht.Range("D6")
End If
Do
If Cells(1,z+1)>Cells(1,z+1) Then
Cells(1,z+1) = Cells(1,z)+1
End If
z = z+1
Loop Until Cells(1,z+1) = MainSht.Range("D7")
*Mainsht (D6) 是我的开始日期,(D7) 是我的结束日期。
我的代码目前没有插入列部分,因为我在同时应用插入列和日期增量代码时遇到问题。使用我当前的代码,我的日期范围从未扩展,因为它仍在相同的较早日期范围内(与以前相同的最后一列,因此日期列的最后一个单元格保持原样)。如何以添加中间缺失日期的方式构建,并通过在重复过程中插入列来添加它?
如果有人可以帮助我,请提前感谢。也感谢您的理解。
最佳答案
请检查以下代码以添加列
Dim start_date, end_date As Date
start_date = ThisWorkbook.Sheets("Sheet1").Range("L1").Value
end_date = ThisWorkbook.Sheets("main").Range("D7").Value
If start_date < end_date Then
Do Until start_date = end_date
ThisWorkbook.Sheets("Sheet1").Activate
Range("L:L").Insert (xlRight)
start_date = start_date + 1
Range("L1").Value = start_date
Loop
End If
关于vba - 如何插入多个日期列以满足特定日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39813826/