看板 Office 關於我們 聯絡資訊
軟體:excel 版本:2007 寫了一個vba 不知道想法哪邊錯誤 在test工作表的A2:A57會有56個顏色 要在B2:B57傳回相對顏色的數量 寫了個vba 不知道那邊想法有錯.... 煩請大大幫忙除錯 感謝 Sub test() Dim cell As Object Dim count As Integer Set rng1 = Sheets("abc").Range("A1:E24") Sheets("test").Select For Each cell In rng1 For i = 1 To 56 If Range("A" & i + 1).Interior.Color = cell.Interior.Color Then count = count + 1 Range("B" & i + 1) = count count = 0 Next Next End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.67.78 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1536548779.A.401.html
soyoso: 1.for i=1 to 56寫在for each的外圈 09/10 11:17
soyoso: range("B" & i+1) = count和count=0移到for each..next結 09/10 11:18
soyoso: 束後 https://i.imgur.com/vJc65mW.jpg 09/10 11:18
soyoso: 如要以原文巢狀迴圈的話,以儲存格來累加 09/10 11:29
soyoso: https://i.imgur.com/gm2YtaZ.jpg 09/10 11:29
soyoso: 但如會在b欄有數值時重新執行的話,請加上清除b欄資料部分 09/10 11:30
ptguitar: 感謝S大 若是要符合那個顏色的數字則加總的話要 09/10 11:31
ptguitar: 怎麼修正.. 09/10 11:31
newacc: 沒有測試過,但巢狀迴圈當資料一多,效率會低得恐怖喔 09/10 11:36
soyoso: +1的部分改為 + cell 09/10 11:38
ptguitar: 還好 因為是在練習vba怎麼想.... 09/10 11:41
ptguitar: 邏輯還是不太行 感謝S大指導^^ 09/10 11:41