返回列表 上一主題 發帖

[發問] 迴圈卡住求救

[發問] 迴圈卡住求救

我想要搜尋最近一個月的單價填在Z欄上
不過不知道怎樣再搜尋到的時候讓它直接往下一列尋找
下面是我目前的代碼
  1. Sub 單價確認()
  2.     'Application.ScreenUpdating = False
  3.     c = Sheets("單價確認").[iv2].End(xlToLeft).Offset(, 1).Column
  4.     For n = 3 To Sheets("單價確認").Range("A65536").End(xlUp).Row
  5.     For nc = Sheets("單價確認").[iv2].End(xlToLeft).Column To 3 Step -1
  6.     Do While Cells(n, nc) > 0     Cells(n, c) = Cells(n, nc)
  7.     Loop
  8.     Next
  9.       Next
  10. End Sub
複製代碼
單價確認.rar (29.74 KB)
字典兩各字 還真難理解

回復 1# freeffly
  1. '** A欄中沒資料   =>1   這For的迴圈不會執行的
  2. For n = 3 To Sheets("單價確認").Range("A65536").End(xlUp).Row
複製代碼
這行程式碼在這工作表中不適用 : 這工作表C:Y欄並非每一列都有資料,在C:Y欄中用End(xlUp).Row 取得最後資料列,的列數會不正確
  1. Sub 單價確認()
  2.     Dim n As Integer, R As Range, C As Integer
  3.     With Sheets("單價確認")
  4.         n = .Range("iv2").End(xlToLeft).Column + 1
  5.         For Each R In .UsedRange.Offset(2).Rows
  6.             For C = R.Cells.Count To 1 Step -1  '由最後的Cells 開始
  7.                 If R.Cells(C) <> 0 Then
  8.                     .Cells(R.Row, n) = R.Cells(C)
  9.                     Exit For
  10.                 End If
  11.             Next
  12.         Next
  13.     End With
  14. End Sub
複製代碼

TOP

回復 2# GBKEE


    感謝版主
    的確A欄資料清空在這個表示沒辦法執行
    只想要把公司資料清掉沒去注意到
    版主的方式挺快的
    學習了
    第一次看到exit for 後來是想到go to的方式
    不過還沒試
    版主的代碼相當清爽
    再次感謝
字典兩各字 還真難理解

TOP

回復 2# GBKEE
  版主
我再將你的程式碼套用到其他的例子
我發現我對你的程式碼可能有一些不了解
1.可以先問依下我目前寫的 篩選問題這各程式碼 跟你上面的方式的差異在什麼地方?
2.你上面的方式也可以改成我現在這各例子嗎?

我想要去看哪一天是一個人加班 當個人加班時數<>加總的加班時數則那一欄刪除
  1. Sub 篩選問題()
  2.     For R = 7 To [A65536].End(xlUp).Row Step 3
  3.     For i = [iv5].End(xlToLeft).Column To 3 Step -1
  4.     If Cells(R, i) + Cells(R + 1) <> Cells(Range("A65536").End(xlUp).Row - 1, i) Then
  5.     Cells(5, i).EntireColumn.Delete
  6.     Exit For
  7.     Exit For
  8.     End If
  9.     Next
  10.     Next
  11. End Sub


  12. Sub 確認()
  13.     Dim C As Range, R As Integer
  14.     With ActiveSheet
  15.         'n = .Range("iv2").End(xlToLeft).Column + 1
  16.         For Each C In .UsedRange.Offset(5).Columns
  17.             For R = C.Cells.Count To 1 Step 3   '由最後的Cells 開始
  18.                 If C.Cells(R) <> Cells(19, C) Then
  19.                     Cells(5, C).EntireColumn.Delete
  20.                     Exit For
  21.                 End If
  22.             Next
  23.         Next
  24.     End With
  25. End Sub
複製代碼
Book1.rar (9.92 KB)
字典兩各字 還真難理解

TOP

剛想了依下我的這各新問題
應該是要搜尋當天該組員工只有一個人加班
原本的思考方向好像用單純迴圈沒辦法寫

不知道字典能不能做到

替代方案好像要做輔助列判斷+迴圈
字典兩各字 還真難理解

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題