[VBA]請問這樣多重迴圈邏輯應該怎麼寫

看板Visual_Basic作者 (小建)時間12年前 (2013/07/30 11:13), 編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/2 (看更多)
我是用EXCEL 2007 sheet1有下面資料: 第一欄是日期+時間,第二欄是AAAA或是BBBB之類的資料 02/04/2013 00:01:46 AAAA 02/04/2013 00:02:15 AAAA 02/05/2013 00:02:44 AAAA 02/05/2013 23:00:02 BBBB 02/06/2013 23:00:33 BBBB 02/06/2013 23:01:17 BBBB 02/08/2013 23:19:18 BBBB 02/08/2013 23:19:18 BBBB sheet2有下面資料: 2013/2/4 2013/2/5 2013/2/6 2013/2/7 2013/2/8 AAAA BBBB 我想統計sheet1裡面有多少AAAA和BBBB,分別將數量寫入到 sheet2所相對應的欄位日期下面 例如上面範例,我希望顯示結果如下 2013/2/4 2013/2/5 2013/2/6 2013/2/7 2013/2/8 AAAA 2 1 BBBB 1 2 2 我用了一個很麻煩的方式.. 我分別將sheet1和sheet2內容都讀成陣列 寫了三重回圈...去比較..但是計算上有點小問題 會跑出下面結果 2013/2/4 2013/2/5 2013/2/6 2013/2/7 2013/2/8 AAAA 2 3 BBBB 1 3 5 我暫時還想不到更好寫法..而且錯誤的地方還想不到怎麼改...想請大家幫幫忙 謝謝 我跑回圈的程式碼如下 count = 1 For n = 2 To Sheet2_Row For m = 1 To Sheet1_Row If Sheet2資料(n) = Sheet1資料(m) Then For k = 1 To i - 1 If Sheet2時間(k) = Sheet1時間(m) Then Worksheets("sheet2").Cells(n, k + 1) = count count = count + 1 End If Next k End If Next m count = 1 Next n -- ※ 編輯: zchien 來自: 123.205.138.242 (07/30 11:14)

07/30 13:18, , 1F
只要一個迴圈就好卻寫到三層 你也真鮮
07/30 13:18, 1F

07/30 13:31, , 2F
請問要怎麼樣寫成一個迴圈呢..可以幫忙說明嗎??謝謝
07/30 13:31, 2F

07/30 19:12, , 3F
無論如何都要3次沒錯阿 我有時也會苦惱要怎寫這類
07/30 19:12, 3F

07/30 19:16, , 4F
我會想最少次讀取 能不能只讀一次
07/30 19:16, 4F

07/30 19:19, , 5F
有時寫入記憶體會快些 用ARRAY
07/30 19:19, 5F

07/30 19:20, , 6F
直接在EXCEL上比對會比較慢 量大時很明顯
07/30 19:20, 6F

07/31 08:58, , 7F
的確是一個迴圈就可以 程式碼請參考 http://ppt.cc/l3So
07/31 08:58, 7F

07/31 14:27, , 8F
謝謝Marty..我受教了..這段程式碼..我寫了快100行..
07/31 14:27, 8F

07/31 14:28, , 9F
想不到竟然只要幾10行即可..只是我的資料變數比較多..
07/31 14:28, 9F

07/31 14:29, , 10F
所以不是只有AAAA,BBBB...而且有幾千筆...但很感謝幫忙..
07/31 14:29, 10F

07/31 15:00, , 11F
不讀AAAA跟日期當然可以 要讀就不行 各要讀一次 所以3次
07/31 15:00, 11F

08/02 17:23, , 12F
三次和三層是不一樣的。
08/02 17:23, 12F
文章代碼(AID): #1HzozOBL (Visual_Basic)
文章代碼(AID): #1HzozOBL (Visual_Basic)