2017-02-20 42 views
-1

我知道一點關於VBA的知識,但似乎無法解決這個編程問題。基於另一個單元格內容插入數據

我有一張工作表,我想要編程在任務結束前需要多少天。每個狀態等於若干天,例如,如果文件處於待處理階段,則需要完成180個總數。但是我想要的是在每個階段寫出它需要的天數。例如

狀態被寫入範圍E3:E160

如果細胞在範圍=待定然後 偏移4列以上和寫入20,以及5列以上偏移和寫35和6列在偏移和寫50 ,並且偏移7列並寫入25,並將8列寫入並寫入15和9列偏移並寫入15,最後偏移10列並寫入20

然而,如果單元格在範圍=「規劃」中,則偏移5列並寫入35,並偏移6列並寫入50等等,直到偏移10列結束並寫入20

目標是針對每種狀態,偏移量的數量基於狀態。

希望這個幫助 我假設它會是一個循環或者什麼的,但我真的不知道它。

此外,它需要能夠捕獲在範圍內或範圍外插入的任何新行。

由於任何人誰就能幫助我

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

Dim LastRow As Long 
Dim i As Long 
LastRow = Range("E" & Rows.Count).End(xlUp).Row 

For i = 3 To LastRow 

    If Range("E" & i).Value = "Pending" Then 

    Range("I" & i).Value = "20" And Range("J" & i).Value = 35 And Range("K" & i).Value = 50 And Range("L" & i).Value = 25 And Range("M" & i).Value = 15 And Range("N" & i).Value = 15 And Range("O" & i).Value = 20 

    ElseIf Range("E" & i).Value = "Planning" Then 
    Range("J" & i).Value = 35 And Range("K" & i).Value = 50 And Range("L" & i).Value = 25 And Range("M" & i).Value = 15 And Range("N" & i).Value = 15 And Range("O" & i).Value = 20 

    ElseIf Range("E" & i).Value = "Screening" Then 
    Range("K" & i).Value = 50 And Range("L" & i).Value = 25 And Range("M" & i).Value = 15 And Range("N" & i).Value = 15 And Range("O" & i).Value = 20 

    ElseIf Range("E" & i).Value = "Exam" Then 
    Range("L" & i).Value = 25 And Range("M" & i).Value = 15 And Range("N" & i).Value = 15 And Range("O" & i).Value = 20 

    ElseIf Range("E" & i).Value = "Interview" Then 
    Range("M" & i).Value = 15 And Range("N" & i).Value = 15 And Range("O" & i).Value = 20 

    ElseIf Range("E" & i).Value = "References" Then 
    Range("N" & i).Value = 15 And Range("O" & i).Value = 20 

    ElseIf Range("E" & i).Value = "Closing" Then 
    Range("O" & i).Value = 20 

    End If 
Next i 

End Sub 
+1

堆棧不是我的服務代碼。如果您提供的代碼是針對特定問題編寫的,那麼我們可以排除故障,但是您不會從頭開始編寫定製解決方案。 – Zerk

+0

當然,對不起,我到目前爲止所寫的內容存在的問題是它「起作用」,但它唯一的作用是在每個狀態的第一個範圍內寫入0。希望你能幫助:-) –

+0

我已經adred在我的問題代碼 –

回答

1
If Range("E" & i).Value = "Pending" Then 

    Range("I" & i).Value = 20 
    Range("J" & i).Value = 35 
    Range("K" & i).Value = 50 
    Range("L" & i).Value = 25 
    Range("M" & i).Value = 15 
    Range("N" & i).Value = 15 
    Range("O" & i).Value = 20 

ElseIf Range("E" & i).Value = "Planning" Then 
    Range("J" & i).Value = 35 
    Range("K" & i).Value = 50 
    Range("L" & i).Value = 25 
    Range("M" & i).Value = 15 
    Range("N" & i).Value = 15 
    Range("O" & i).Value = 20` 

你需要在你的Then條款擺脫所有And語句。這是一個例子。你可以改變其餘的。您也可以查看Case Select方法。

+0

真棒,我會嘗試它,並會讓你知道。謝謝sonmuch的幫助! :-) –

+0

這完美地工作:-)非常感謝你! –

相關問題