看板 Visual_Basic 關於我們 聯絡資訊
我是用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)
MOONRAKER:只要一個迴圈就好卻寫到三層 你也真鮮 07/30 13:18
zchien:請問要怎麼樣寫成一個迴圈呢..可以幫忙說明嗎??謝謝 07/30 13:31
tsongs:無論如何都要3次沒錯阿 我有時也會苦惱要怎寫這類 07/30 19:12
tsongs:我會想最少次讀取 能不能只讀一次 07/30 19:16
tsongs:有時寫入記憶體會快些 用ARRAY 07/30 19:19
tsongs:直接在EXCEL上比對會比較慢 量大時很明顯 07/30 19:20
Marty:的確是一個迴圈就可以 程式碼請參考 http://ppt.cc/l3So 07/31 08:58
zchien:謝謝Marty..我受教了..這段程式碼..我寫了快100行.. 07/31 14:27
zchien:想不到竟然只要幾10行即可..只是我的資料變數比較多.. 07/31 14:28
zchien:所以不是只有AAAA,BBBB...而且有幾千筆...但很感謝幫忙.. 07/31 14:29
tsongs:不讀AAAA跟日期當然可以 要讀就不行 各要讀一次 所以3次 07/31 15:00
MOONRAKER:三次和三層是不一樣的。 08/02 17:23