看板 Office 關於我們 聯絡資訊
軟體:Excel 版本:2010 問題摘要:欲將單一欄(B)資料中由上往下找出某一筆值小於2大於1.7的儲存格, 並將其列數傳回後,貼於特定儲存格內(C2)中以便後續運算, 然而在逐行執行時並無進入迴圈也無顯示特殊錯誤訊息, 還是有邏輯上的錯誤,煩請板友解惑,非常感謝。 以下是code: == Set PasteData = Range("B2", PasteTimeL) 'PasteTimeL已定義 For i = 2 To PasteData.Rows.Count If Worksheets(1).Cells(i, 2).Value < 2 Then Set Paste = Range(Cells(i, 2)) Set Range("C2").Value = Paste.Row End If Exit For Cells(i, 2).Value = 1.7 Next i -- 作者 kuguaboy (吃地瓜會放屁) 看板 sex 標題 [討論] 怎麼改掉尿尿大聲的問題 時間 Wed Jun 30 23:05:29 2010
aaasss668:把老二插進水裡面尿阿 幹06/30 23:09
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.44.107
mindscold:exit for放在外面的話 這樣廻圈不就最多只會跑1次? 11/07 16:25
philfeel978:感謝樓上! 但若需要設定exit for條件為值<1.7時 11/07 16:35
philfeel978:是要把exit for寫在if的條件(else)裡面? 11/07 16:36
philfeel978: *elseif 11/07 16:37
感謝板友指教,For loop有跑得較正常,以下是修正後code For i = 2 To PasteData.Rows.Count If Worksheets(1).Cells(i, 2).Value < 2 Then Set Paste = Range(Cells(i, 2)) Set Range("C2").Value = Paste.Row ElseIf Worksheets(1).Cells(i, 2).Value < 2 Then Exit For End If Next i 這裡又遇到個問題,在Set Paste = Range(Cells(i,2))時,顯示 Range 方法 (global) 失敗,在改成 Set Paste = Cells(i,2)時便可以正常執行,請問是Cells的哪一項性質導致呢?? 另外在下一行 Set Range("C2").Value = Paste.Row則是顯示 "執行階段錯誤:此處需要物件"的錯誤,請問是指需要再指定另一變數嗎? ※ 編輯: philfeel978 來自: 140.96.44.107 (11/07 16:50) 發現錯誤了,原來是沒有物件只要設定值根本不用Set嘛...orz ※ 編輯: philfeel978 來自: 140.96.44.107 (11/07 16:57)