Как очистить ячейки, если критерии соответствуют после копирования на новый лист? - PullRequest
0 голосов
/ 30 декабря 2018

Я хочу очистить значение в D34: 155, если значение критерия "Fælles" или "Lagt ud" находится в ячейке, а текст НЕ выделен жирным шрифтом.

У меня пока нет большого опыта программирования.Я пробовал некоторые четкие диапазоны и удалить, которые не сработали.С этим последним кодом кажется, что он очищает случайные места в диапазоне.

Private Sub CommandButton1_Click()

A = Worksheets("Stig Okt").Cells(Rows.Count, 1).End(xlUp).Row

For i = 34 To A
If Worksheets("Stig Okt").Cells(i, 4).Font.Bold = False And Cells(i, 4).Value = "Fælles" Then
    Worksheets("Stig Okt").Rows(i).Columns("A:H").Copy
    Worksheets("Laura Okt").Activate
    b = Worksheets("Laura Okt").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Laura Okt").Cells(b + 1, 1).Select
    ActiveSheet.Paste
End If

If Worksheets("Stig Okt").Cells(i, 4).Font.Bold = False And Cells(i, 4).Value = "Lagt ud" Then
    Worksheets("Stig Okt").Rows(i).Columns("A:H").Copy
    Worksheets("Laura Okt").Activate
    b = Worksheets("Laura Okt").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Laura Okt").Cells(b + 1, 1).Select
    ActiveSheet.Paste
End If

If Worksheets("Laura Okt").Cells(i, 4).Value = "Fælles" And Cells(i, 4).Font.Bold = False Then
    Worksheets("Laura Okt").Cells(i, 4).Clear
ElseIf Worksheets("Laura Okt").Cells(i, 4).Value = "Lagt ud" And Cells(i, 4).Font.Bold = False Then
    Worksheets("Laura Okt").Cells(i, 4).Clear
End If
Next
Worksheets("Stig Okt").Activate


End Sub

Это самая последняя часть кода, с которой мне нужна помощь.Где написано «Очистить» Помощь очень ценится.Спасибо, что нашли время, чтобы прочитать!

1 Ответ

0 голосов
/ 31 декабря 2018

Возможно, вы видите случайное поведение из-за четырех раз в приведенном выше коде, где свойство Cells ссылается без квалификации.Я считаю, что когда ссылка на свойство Cells не определена, по умолчанию используется свойство Cells активной электронной таблицы во время выполнения кода.

Например, приведенный выше код показывает:

If Worksheets("Stig Okt").Cells(i, 4).Font.Bold = False And Cells(i, 4).Value = "Lagt ud" Then

Но на самом деле вы можете сказать что-то вроде:

If Worksheets("Stig Okt").Cells(i, 4).Font.Bold = False And Worksheets("Stig Okt").Cells(i, 4).Value = "Lagt ud" Then

Надеюсь, это поможет!

...