Excel VBA用户窗体设置单元格内部不会到下一行

我想做一个用户表单,我想它改变下一个单元格的颜色。 它每次只使用string,但每次我尝试更改单元格内部时,它都停留在同一行,而不是像它应该一样向下行。 当我运行它没有颜色部分,一切正常,每当我想要他们的string去下一行。 但是,当我插入单元格颜色的内部部分它不会下降1。 我想这样做,如果checkbox被选中,该行的第一列是绿色,如果没有选中,它是红色的。

代码如下:

Private Sub btnEnter_Click() Dim ssheet As Worksheet If Me.tbTitle.Value = "" Or Me.tbDate.Value = "" Or Me.cmbGenre = "" Or Me.tbKeywords = "" Or Me.tbDirector = "" Or Me.tbCast = "" Then If MsgBox("Not all forms are completed. Do you want to continue?", vbQuestion + vbYesNo) <> vbYes Then Exit Sub End If End If Set ssheet = ThisWorkbook.Sheets("MovieList") nr = ssheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 If CheckBox1.Value = True Then ssheet.Cells(nr, 1).Interior.ColorIndex = 4 Else: ssheet.Cells(nr, 1).Interior.ColorIndex = 3 End If ssheet.Cells(nr, 2) = Me.tbTitle ssheet.Cells(nr, 3) = Me.tbDate ssheet.Cells(nr, 4) = Me.cmbGenre ssheet.Cells(nr, 5) = Me.tbKeywords ssheet.Cells(nr, 6) = Me.tbDirector ssheet.Cells(nr, 7) = Me.tbCast ssheet.Cells(nr, 8) = Me.tbComments Call resetForm End Sub Sub resetForm() Me.tbTitle = "" Me.tbDate = "" Me.cmbGenre = "" Me.tbKeywords = "" Me.tbDirector = "" Me.tbCast = "" Me.tbComments = "" Me.tbTitle.SetFocus End Sub Private Sub CheckBox1_Click() End Sub Private Sub UserForm_Initialize() 'fill combobox For Each cell In [ListGenre] Me.cmbGenre.AddItem Next cell End Sub 

如果你能帮助我,我会很高兴。 谢谢。

如果我正确理解你的上面的代码,你有空单元格的问题。

如果你的1列中没有任何string,你需要添加一些string,但如果你有“空”单元格,并同时着色,你可以这样做。

好的,在你的代码的这两部分之间:

 If CheckBox1.Value = True Then ssheet.Cells(nr, 1).Interior.ColorIndex = 4 Else: ssheet.Cells(nr, 1).Interior.ColorIndex = 3 End If 

和这个:

 ssheet.Cells(nr, 2) = Me.tbTitle ssheet.Cells(nr, 3) = Me.tbDate ssheet.Cells(nr, 4) = Me.cmbGenre ssheet.Cells(nr, 5) = Me.tbKeywords ssheet.Cells(nr, 6) = Me.tbDirector ssheet.Cells(nr, 7) = Me.tbCast ssheet.Cells(nr, 8) = Me.tbComments 

你需要把这一行:

 ssheet.Cells(nr, 1) = " " 

你会得到你想要的!