2014-09-18 63 views
0

我在寫一個宏,並且在進入其他步驟之前需要清理一些數據。其中一個我需要的東西是隻增加或列相等的值M.只有在列中增加值vba

M(Current Data)  M (What is Needed) 
0     0 
0     0 
8055    8055 
8055    8055 
0     8055 
0     8055 
0     8055 
611     8055 
611     8055 
0     8055 
0     8055 
0     8055 
500     8055 
500     8055 
3065    8055 
8394    8394 
8300    8394 
8000    8394 
8194    8394 

=if(M2<M1,M1,M2) 

我已經試過各種IF公式,例如上面的那個,但是,你很可能會看到時,我打2公式不再是解決方案。我已經試過無情地尋找答案,我確信它在那裏,但是,我想我不知道如何適當地說出它。任何幫助表示讚賞。祝你有美好的一天!

+4

無需宏。假設col A中的原始值和col B中的新值,然後在B2中放入'= MAX(A2,B1)'並向下拖動 – 2014-09-18 19:44:03

+0

使用MAX()函數的另一種形式是= MAX(A $ 2:A2 )'必要時填寫。 – Jeeped 2014-09-19 01:26:28

回答

0

如果你需要一個宏,然後:

Sub NeverDecrease() 
    Dim N As Long, i As Long 
    N = Cells(Rows.Count, "M").End(xlUp).Row 
    For i = 2 To N 
     If Cells(i, "M").Value < Cells(i - 1, "M").Value Then 
      Cells(i, "M").Value = Cells(i - 1, "M").Value 
     End If 
    Next i 
End Sub 
+0

你已經跳過了幾步,我認爲這會做的:'Sub NeverDecrease() Dim N,i,Temp,Long As Long N = Cells(Rows.Count,「M」)。End(xlUp )。如果單元格(i,「M」),值<單元格(i-1,「M」)。然後返回值爲012。 Temp =單元格(i,「M」)值 單元格(i,「M」)。值=單元格(i - 1,「M」)值 單元格(i - 1,「M」)= Temp change = change + 1 End If Next i Loop End Sub# – DyRuss 2014-09-18 20:18:37

+0

你們是最好的!謝謝。 – Ryan 2014-09-19 18:40:01