vba - 如何插入多个日期列以满足特定日期?

标签 vba excel date

我对代码和 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/

相关文章:

excel - 在excel中计算条件格式的单元格

mysql - 年度季度内的值总和

PHP时间计算

excel - 如何修复第二个errHandler

vb.net - Excel 引用对数据透视表 RefreshTable 无效

javascript - JavaScript 中的 VBA 等效项,用于 Google 表格的 Google Apps 脚本

javascript - 检查日期是否属于日期数组

excel VBA如何在IE11上点击div的onclick事件

excel - 范围的替换方法

regex - VBScript Regex 奇怪的输出