EXCELVBA(去除空格向上移ForEach) - 工作

Table of Contents

各位大大好!1.Andy想從簡單的程式碼學習ForEachNext的程式設計方式1.1.http://tw.knowledge.yahoo.com/question/question?qi...冰淇淋大大指導的程式碼,Andy程度不夠,雖然已經套用到工作上,但還不了解2.Andy用ForNext試寫了程式碼如下,請大大指導如何改用ForEachNext的方式設計程式碼Sub去除空格向上移()Sheets("Sheet1").Columns("A:G").CopyColumns("O:T")Fori=[A65536].End(xlUp).RowTo4Step-1Forj=15To19Step1IfCells(i,j)=""ThenCells(i,j).DeleteShift:=xlUpNextjNextiEndSub<範例檔>http://www.funp.net

All Comments

Rachel avatarRachel2012-11-12
因為ForEach...Next陳述式,會針對一個陣列或集合中的所有元素,重複執行一段陳述式。除非必要,未必一定在有更方便的方法下選擇。以下係根據您的需求改寫的結果,請 參考。Sub去除空格向上移()Dimi,j,k,m,nAsVariantDimii(),jj()ii=Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)jj=Array(1,2,3,4,5,6)m=15:k=2Sheets("Sheet1").SelectForEachjInjjForEachiIniiIfCells(i,j).Value<>""Thenn=Cells(i,j).ValueCells(k,m).Value=nk=k+1EndIfNextim=j+15k=3NextjEndSubSub清除()[O:T].Delete'[O:T].Clea
Hardy avatarHardy2012-11-15
由於A欄最後一個值不一定是A:G欄的最後含值的列號如A欄最後的1格是A5,原代碼祇會刪除4:5列的空格建譏將Fori=[A65536].End(xlUp).RowTo4Step-1改為Fori=Columns("A:G").SpecialCells(xlCellTypeLastCell).RowTo4Step-12012-11-1223:25:44補充:Foreach…next,已有先由左至右彼由上至下的跑法規律,如要求刪除列或儲存格,代碼不好寫若祇要永達到本題效果,建議不用迴圈及if判斷,直接將所有空格一次性刪除,既簡潔,更高效2012-11-1223:27:59補充:Sub去除空格向上移_1()Columns("A:G").CopyColumns(
Madame avatarMadame2012-11-14
原則上ForEach...Next是由上至下(由小至大)對於由下至上並不適用此例只是作為計數器用~http://www.funp.net/94971參考就好2012-11-1306:37:38補充:真實面貌Fori=yR.Cells.CountTo1Step-1IfyR(i)=""ThenyR(i).DeletexlUpNext應版主要求,花俏而已讓RCC大大笑話了^.^...Showmore
David avatarDavid2012-11-11
請教各位大大是ForEachNext的程式碼方式設計方式不適用嗎?還是說明的不清楚?2012-11-1215:04:30補充:問題1.1指的是冰淇淋大大指導的程式碼註解的很清楚了,但是Andy還不懂,不熟ForEachNext的設計方式所以想請大大們指導如何以ForEachNext的方式設計程式碼!懇請大大們指導!2012-11-1221:46:39補充:謝謝RCC大大第一眼看到您寫的程式碼心裡的是"Andy好像用錯範例學ForEachNext"程式碼怎麼會變這麼長!可以先請大大用比較簡單的範例指導ForNext與ForEachNext的差異嗎?2012-11-