Note: The other languages of the website are Google-translated. Back to English

如何在Excel中列出兩個日期之間的所有日期?

在某些情況下,如果您具有特定的開始日期和結束日期,則可能需要在Excel中列出這兩個給定日期之間的所有日期。 現在,本教程將討論在Excel中列出兩個日期之間的所有日期的方法。

通過公式列出兩個日期之間的所有日期

按VBA列出兩個日期之間的所有日期

通過Kutools for Excel列出兩個日期之間的所有日期 好主意3


在這裡,我介紹了可以在Excel中快速列出兩個給定日期之間的所有日期的公式。

1.在兩個單元格中鍵入開始日期和結束日期,在這裡我將它們鍵入到單元格A1和A2中。 看截圖:
doc-list-all-dates-two-dates-1之間的文檔列表

2.然後轉到單元格C1鍵入此公式 = A1 + 1 進入它,然後單擊 Enter 鍵。 看截圖:
doc-list-all-dates-two-dates-2之間的文檔列表

3.然後在單元格C2中,鍵入此公式 =IF($A$1+ROW(A1)>=$A$2-1,"",C1+1) 放入其中,然後將自動填充手柄向下拖動到單元格,直到出現空白單元格。 查看屏幕截圖:

doc-list-all-dates-two-dates-3之間的文檔列表       doc-list-all-dates-two-dates-4之間的文檔列表

然後,您可以看到列中列出了兩個給定日期之間的所有日期。
doc-list-all-dates-two-dates-5之間的文檔列表

備註:

在上述公式中,A1是開始日期,A2是結束日期,C1是日期範圍中的第一個日期。


如果您對宏代碼感興趣,則可以使用下面的VBA在Excel中列出兩個給定日期之間的所有日期。

1.在兩個單元格中鍵入您的開始日期和結束日期,在這裡我鍵入單元格A1和B1。 看截圖:
doc-list-all-dates-two-dates-6之間的文檔列表

2。 按 Alt + F11 打開鑰匙 Microsoft Visual Basic for Applications 窗口。

3。 然後點擊 插入 > 模塊 並將以下VBA代碼複製並粘貼到彈出窗口中 模塊 窗口。

VBA:列出兩個日期之間的所有日期。

Sub WriteDates()
	'Updateby20150305
	Dim rng As Range
	Dim StartRng As Range
	Dim EndRng As Range
	Dim OutRng As Range
	Dim StartValue As Variant
	Dim EndValue As Variant
	xTitleId     = "KutoolsforExcel"
	Set StartRng = Application.Selection
	Set StartRng = Application.InputBox("Start Range (single cell):", xTitleId, StartRng.Address, Type: = 8)
	Set EndRng   = Application.InputBox("End Range (single cell):", xTitleId, Type: = 8)
	Set OutRng   = Application.InputBox("Out put to (single cell):", xTitleId, Type: = 8)
	Set OutRng   = OutRng.Range("A1")
	StartValue   = StartRng.Range("A1").Value
	EndValue     = EndRng.Range("A1").Value
	If EndValue - StartValue <= 0 Then
		Exit Sub
		End If
		ColIndex = 0
		For i = StartValue To EndValue
			OutRng.Offset(ColIndex, 0) = i
			ColIndex = ColIndex + 1
		Next
	End Sub

4。 點擊 or F5 運行VBA,並彈出一個對話框供您選擇開始日期,然後單擊 OK,然後在第二個彈出對話框中選擇結束日期。 看截圖:

doc-list-all-dates-two-dates-7之間的文檔列表          doc-list-all-dates-two-dates-8之間的文檔列表

5。 點擊 OK,然後選擇一個單元格以顯示日期,然後單擊 OK。 現在,您可以看到列出了兩個日期之間的所有日期。 查看屏幕截圖:

doc-list-all-dates-two-dates-9之間的文檔列表         doc-list-all-dates-two-dates-10之間的文檔列表

備註:此VBA生成的列表包括開始日期和結束日期。


實際上,如果您安裝了 Excel的Kutools –方便的添加工具,您也可以使用 插入隨機數據 解決這個問題。

Excel的Kutools, 與以上 300 便捷的Excel功能,可提高工作效率並節省工作時間。

免費安裝 Kutools for Excel,請執行以下操作:

1.選擇要在兩個日期之間列出日期的列,然後單擊 庫工具 > 插入 > 插入隨機數據。 看截圖:
doc插入隨機數據1

2.然後在 插入隨機數據 對話框中單擊 日期 標籤,然後從中選擇開始和結束日期 To列出,然後記得檢查 勞動日, 週末獨特價值 複選框。 看截圖:
doc-list-all-dates-two-dates-12之間的文檔列表

3。 點擊 Ok 關閉對話框,另一個 Excel的Kutools 對話框彈出,只需單擊 。 然後,您可以看到列出了開始日期和結束日期之間的日期。 查看屏幕截圖:

doc-list-all-dates-two-dates-13之間的文檔列表           doc-list-all-dates-two-dates-14之間的文檔列表

4.現在,您需要按所需順序對日期列表進行排序。 請點擊 數據 > 從最舊到最新排序。 然後,您可以看到日期從最早的日期到最新的日期排序。 查看屏幕截圖:

doc-list-all-dates-two-dates-15之間的文檔列表          doc-list-all-dates-two-dates-16之間的文檔列表

這款獨特的敏感免洗唇膜採用 Moisture WrapTM 技術和 Berry Mix ComplexTM 成分, 插入隨機數據 實用程序中,您還可以插入隨機整數,隨機字符串和隨機時間等。 單擊此處以了解有關插入隨機數據的更多信息。


相關文章:



最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (9)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
我們可以在宏中使用文本框而不是框內嗎
網站主持人對此評論進行了最小化
您好,感謝您分享出色的代碼。 不過我想問一個問題。 我正在使用您共享的此 VBA 代碼。 1)我可以在同一行列出所有其他單元格的日期嗎? 2)我們可以定義開始日期單元格和結束日期單元格以及將寫入新信息的單元格嗎? 我問這些問題是因為我有 30 行。 每行都有不同人的數據。 單元格 G 是開始日期,單元格 H 是結束日期。 其他單元格包含一些信息。 我希望將其作為這些單元格之間的所有日期列在一個新單元格中。 例如(僅顯示演示,因此只有下面寫的 G 和 H 單元格-I 是列表出現的位置): Row 2 Person A 28/05/2017 05/06/2017 28/05/2017 Row 3 Person A 28/05 /2017 05/06/2017 29/05/2017 第 4 行人 A 28/05/2017 05/06/2017 30/05/2017 第 5 行人 A 28/05/2017 05/06/2017 31/05/2017第 6 行人 A 28/05/2017 05/06/2017 01/06/2017 第 7 行人 A 28/05/2017 05/06/2017 02/06/2017 第 8 行人 A 28/05/2017 05/06 /2017 03/06/2017 行 9 人 A 28/05/2017 05/06/2017 04/06/2017 行 10 人 A 28/05/2017 05/06/2017 05/06/2017 行 11 人 B 23 /05/2017 31/05/2017 23/05/2017 第 12 行人 B 23/05/2017 31/05/2017 24/05/2017 第 13 行人 B 23/05/2017 31/05/2017 25/05 /2017 行 14 人 B 23/05/2017 31/05/2017 26/05/2017 等等...
網站主持人對此評論進行了最小化
我嘗試了它工作的 VBA 代碼。謝謝分享。 同樣,是否可以將其沿列/水平粘貼?
網站主持人對此評論進行了最小化
你好,如果要橫向列出日期,只需要使用vba代碼列出日期,並將結果復制粘貼轉置即可。
查看附件 (1 / 5)
網站主持人對此評論進行了最小化
Firat - 你解決了你的問題嗎? 我有完全相同的問題,我無法在行而不是列中得到結果。
網站主持人對此評論進行了最小化
為什麼不嘗試將列結果轉置為行?
網站主持人對此評論進行了最小化
如果你反轉這條線,你可以讓它工作:


OutRng.Offset(ColIndex, 0) = i 到 OutRng.Offset(0, ColIndex) = i
網站主持人對此評論進行了最小化
如何循環這個 vba 代碼(例如 1000 行)?
網站主持人對此評論進行了最小化
抱歉這麼晚才回复,但我不明白你的問題,VBA 僅用於列出日期範圍之間的日期,為什麼需要循環代碼?
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護