2017-02-05 3 views
1

Я пытаюсь создать форму пользователя, и я хочу, чтобы она изменила цвет следующей ячейки. Он работает каждый раз, когда я просто использую строки, но каждый раз, когда я пытаюсь изменить интерьер ячейки, он остается в одной строке, а не идет на 1 строку вниз, как следует. Когда я запускаю его без цветовой части, все работает отлично, и строки переходят к следующей строке каждый раз, когда я их хочу. Но когда я вставляю внутреннюю часть цвета ячейки, она не идет 1 вниз. Я хочу сделать так, что если флажок установлен, первый столбец строки будет зеленым, и если он не установлен, он будет красным.Excel vba userform ячейка ячейки не идет в следующую строку

Вот код:

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 

Я был бы так рад, если вы могли бы мне помочь. Спасибо.

+0

отправьте пример – user3598756

+0

Ну, вы ничего не увидите. В этом-то и дело. Добавленные строки не перемещаются вниз, когда я интегрирую материал цвета. –

+0

, где «добавленная строка» _ взята и добавлена? – user3598756

ответ

0

Если я правильно понял ваш вышеуказанный код, у вас возникли проблемы с пустыми ячейками.

Если у вас нет строки в столбце 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 

Вы должны поместить эту строку:

ssheet.Cells(nr, 1) = " " 

Вы получите что ты хочешь!

Смежные вопросы