在VBA

2016-07-11 66 views
0

添加配方到現有的代碼,我寫了這個代碼在VBA

Private Sub CommandButton1_Click() 

Dim sht As Worksheet 
Dim NextRow As Long 

Set sht = Sheets("Sheet1") 
NextRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row + 1 

MsgBox NextRow 

With sht 
    With .Range("B" & NextRow & ":B" & NextRow + 4) 
     .merge 
     .VerticalAlignment = xlCenter 
    End With 
    With .Range("J" & NextRow & ":J" & NextRow + 4) 
     .merge 
     .VerticalAlignment = xlCenter 
    End With 
    With .Range("K" & NextRow & ":K" & NextRow + 4) 
     .merge 
     .VerticalAlignment = xlCenter 
    End With 
    With .Range("L" & NextRow & ":L" & NextRow + 4) 
     .merge 
     .VerticalAlignment = xlCenter 
    End With 
    With .Range("C" & NextRow & ":C" & NextRow + 4) 
     .merge 
     .VerticalAlignment = xlCenter 
    End With 
    With .Range("F" & NextRow & ":F" & NextRow + 4) 
     .merge 
     .VerticalAlignment = xlCenter 
    End With 

    .Range("A" & NextRow & ":A" & NextRow + 4).FormulaR1C1 = "=COUNTIF(R5C2:RC[1],RC[1])" 

    .Range("B" & NextRow) = TextBox1 
    .Range("J" & NextRow) = ComboBox1 
    .Range("K" & NextRow) = ComboBox3 
    .Range("L" & NextRow) = ComboBox2 

    If CheckBox1 = True Then .Range("E" & NextRow) = "URS" 
    If CheckBox2 = True Then .Range("E" & NextRow + 1) = "RA" 
    If CheckBox3 = True Then .Range("E" & NextRow + 2) = "TM" 
    If CheckBox4 = True Then .Range("E" & NextRow + 3) = "IOQ" 
    If CheckBox5 = True Then .Range("E" & NextRow + 4) = "FR" 

End With 

MsgBox "All done" 

End Sub 

它用於一個新的行添加到我的電子表格,那進入用戶表單的信息。我有這一切的工作,但我有C和F欄中的兩個公式,我需要進入新的行。我不能簡單地將公式拖到列上,因爲在我的代碼運行後合併的每行中都有合併的單元格。我在我的代碼中嘗試了幾種不同的公式函數,並且都返回錯誤。關於如何將這些公式添加到我的代碼中的任何想法?

回答

0

您添加的公式("=COUNTIF(R5C2:RC[1],RC[1])")在您將其粘貼到工作簿單元格中時引發循環引用錯誤。由於公式錯誤,.Range().FormulaR1C1 = ""將失敗。調整公式並重試。