[算表] 兩個日期之間的日期

看板Office作者 (逢甲阿法)時間10年前 (2015/08/25 11:21), 10年前編輯推噓0(0017)
留言17則, 2人參與, 最新討論串1/1
軟體:excel 版本:2010 大家好 我現在想要讓使用者輸入兩個日期 然後 找出資料裡面兩個日期之間的資料複製到新的表 我的CODE如下 http://i.imgur.com/w86xRE9.png
Private Sub CommandButton1_Click() Dim BDate As Date Dim EDate As Date Dim Udate As Date BDate = DateSerial(TextBox1.Text, TextBox2.Text, TextBox3.Text) EDate = DateSerial(TextBox4.Text, TextBox5.Text, TextBox6.Text) x = 2 Sheets.Add after:=Sheets(Sheets.count) If OptionButton2.Value = True Then Do Until Sheets(1).Cells(x, 14) = "" x = x + 1 CT = Sheets(1).Cells(x, 14) Udate = DateSerial(year(CT), Month(CT), Day(CT)) If CT = "" Then 'do nothing ElseIf BDate <= Udate <= EDate Then Sheets(Sheets.count).Row(x).EntireRow.Value = Sheets(1).Row(x).EntireRow.Value End If Loop Else End If End Sub 我用F8執行第一次的DO之後 程式碼裡面的 BDate<=Udate<=EDate 會有下面的變數加在上面 100/1/1<=101/10/25<=105/1/1 可是他卻不會跑到下一行去複製資料到新的那張表 直接跳過 如果直接執行的話 會直接多出一張新的空白表 因為他根本不會複製資料過去.. 請問我的邏輯哪邊不對了 冏? -- #1CYsr0re (Keelung)

09/11 20:11,
因為引擎的聲音太大聲了 尤其是在橋下 回音更大聲
09/11 20:11

09/11 20:12,
害我沒辦法專心講電話 聽不清楚
09/11 20:12

09/11 20:24,
所以要怪機車騎士嗎?_?
09/11 20:24

09/11 20:25,
沒錯 機車騎太兇 引擎聲音太大 沒考慮到路邊講電話聽不
09/11 20:25

09/11 20:25,
清楚
09/11 20:25
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.83.109.51 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1440472871.A.590.html ※ 編輯: MAGICXX (111.83.109.51), 08/25/2015 11:21:35 ※ 編輯: MAGICXX (111.83.109.51), 08/25/2015 11:22:53

08/25 11:54, , 1F
這樣寫判斷上應會是100/1/1<=101/10/25為true
08/25 11:54, 1F

08/25 11:55, , 2F
true<=105/1/1為false就跳過了
08/25 11:55, 2F

08/25 11:57, , 3F
調整bdate<=udate and udate <=edate 試試
08/25 11:57, 3F
到下一句了~ 可是又有錯誤出現 此處需要物件...冏 ※ 編輯: MAGICXX (111.83.109.51), 08/25/2015 13:05:23

08/25 13:15, , 4F
row(x)的部分改為range("a"&x)或cells(x,1)
08/25 13:15, 4F

08/25 13:38, , 5F
恩 可是我想要的是整列的值複製過去~
08/25 13:38, 5F

08/25 13:49, , 6F
是的這我知道,所以才會這樣回文的
08/25 13:49, 6F

08/25 13:51, , 7F
entirerow的說明 https://goo.gl/2N0QuQ
08/25 13:51, 7F

08/25 13:57, , 8F
這是回文語法執行的錄影
08/25 13:57, 8F

08/25 14:06, , 9F
謝謝~成功拉~
08/25 14:06, 9F

08/25 14:14, , 10F
抱歉 還有個問題 因為中間會有不過條件的 所以會多一排
08/25 14:14, 10F

08/25 14:14, , 11F
空白列 有辦法處理嗎QQ?
08/25 14:14, 11F

08/25 14:17, , 12F
抱歉回文寫到有不過條件的,請問這意思是?
08/25 14:17, 12F
我該詳述一下我的問題~@@ 就是上面的條件沒過 給定條件為100/1/1~101/1/1 這樣的話102/1/1 就沒過 因為我們的條件是 Sheets(Sheets.count).Cells(x, 1).EntireRow.Value = Sheets(1).Cells(x, 1).EntireRow.Value 然後他就會在表2相同的列數(第x列)空一列 整體就會變成這樣 http://i.imgur.com/w69pWem.png
可以讓他不要空嗎? ※ 編輯: MAGICXX (111.83.109.51), 08/25/2015 14:52:03

08/25 15:08, , 13F
那在elseif的判斷內多加一個變數來累加,也就是當true時
08/25 15:08, 13F

08/25 15:09, , 14F
這個變數累進1,和x區隔;或是用range.end()配合offset來
08/25 15:09, 14F

08/25 15:10, , 15F
抓儲存格最後一筆有值的儲存格位址
08/25 15:10, 15F

08/25 15:22, , 16F
感謝您~
08/25 15:22, 16F
還有個小問題 在關閉的時候 有辦法顯示自己寫的警告視窗嗎? 不是一般關掉的時候 問你要不要存檔那個 是另外的 要放在哪個函數底下? Workbook_Open()是打開的時候自動執行 關掉的時候是用哪個?好像沒有workbook_close()... ※ 編輯: MAGICXX (111.83.109.51), 08/25/2015 15:54:36

08/25 15:57, , 17F
可試試workbook_beforeclose
08/25 15:57, 17F
文章代碼(AID): #1LszydMG (Office)
文章代碼(AID): #1LszydMG (Office)