標題:
[發問]
迴圈卡住求救
[打印本頁]
作者:
freeffly
時間:
2012-12-28 16:59
標題:
迴圈卡住求救
我想要搜尋最近一個月的單價填在Z欄上
不過不知道怎樣再搜尋到的時候讓它直接往下一列尋找
下面是我目前的代碼
Sub 單價確認()
'Application.ScreenUpdating = False
c = Sheets("單價確認").[iv2].End(xlToLeft).Offset(, 1).Column
For n = 3 To Sheets("單價確認").Range("A65536").End(xlUp).Row
For nc = Sheets("單價確認").[iv2].End(xlToLeft).Column To 3 Step -1
Do While Cells(n, nc) > 0 Cells(n, c) = Cells(n, nc)
Loop
Next
Next
End Sub
複製代碼
[attach]13721[/attach]
作者:
GBKEE
時間:
2012-12-28 18:12
回復
1#
freeffly
'** A欄中沒資料 =>1 這For的迴圈不會執行的
For n = 3 To Sheets("單價確認").Range("A65536").End(xlUp).Row
複製代碼
這行程式碼在這工作表中不適用 : 這工作表C:Y欄並非每一列都有資料,在C:Y欄中用End(xlUp).Row 取得最後資料列,的列數會不正確
Sub 單價確認()
Dim n As Integer, R As Range, C As Integer
With Sheets("單價確認")
n = .Range("iv2").End(xlToLeft).Column + 1
For Each R In .UsedRange.Offset(2).Rows
For C = R.Cells.Count To 1 Step -1 '由最後的Cells 開始
If R.Cells(C) <> 0 Then
.Cells(R.Row, n) = R.Cells(C)
Exit For
End If
Next
Next
End With
End Sub
複製代碼
作者:
freeffly
時間:
2012-12-29 08:42
回復
2#
GBKEE
感謝版主
的確A欄資料清空在這個表示沒辦法執行
只想要把公司資料清掉沒去注意到
版主的方式挺快的
學習了
第一次看到exit for 後來是想到go to的方式
不過還沒試
版主的代碼相當清爽
再次感謝
作者:
freeffly
時間:
2013-1-25 16:23
回復
2#
GBKEE
版主
我再將你的程式碼套用到其他的例子
我發現我對你的程式碼可能有一些不了解
1.可以先問依下我目前寫的 篩選問題這各程式碼 跟你上面的方式的差異在什麼地方?
2.你上面的方式也可以改成我現在這各例子嗎?
我想要去看哪一天是一個人加班 當個人加班時數<>加總的加班時數則那一欄刪除
Sub 篩選問題()
For R = 7 To [A65536].End(xlUp).Row Step 3
For i = [iv5].End(xlToLeft).Column To 3 Step -1
If Cells(R, i) + Cells(R + 1) <> Cells(Range("A65536").End(xlUp).Row - 1, i) Then
Cells(5, i).EntireColumn.Delete
Exit For
Exit For
End If
Next
Next
End Sub
Sub 確認()
Dim C As Range, R As Integer
With ActiveSheet
'n = .Range("iv2").End(xlToLeft).Column + 1
For Each C In .UsedRange.Offset(5).Columns
For R = C.Cells.Count To 1 Step 3 '由最後的Cells 開始
If C.Cells(R) <> Cells(19, C) Then
Cells(5, C).EntireColumn.Delete
Exit For
End If
Next
Next
End With
End Sub
複製代碼
[attach]14067[/attach]
作者:
freeffly
時間:
2013-1-25 16:59
剛想了依下我的這各新問題
應該是要搜尋當天該組員工只有一個人加班
原本的思考方向好像用單純迴圈沒辦法寫
不知道字典能不能做到
替代方案好像要做輔助列判斷+迴圈
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)