如何使用 IF AND 宏将单元格复制到另一个 sheet?

How to copy cells to another sheet using IF AND Macro?

如果满足条件,我想复制一些特定的列。 也就是说,如果第 4 行中的值为 "Fælles" 并且文本不是粗体。

请看看我的代码并告诉我哪里做错了。 我没有太多编码经验或 VBA.

Private Sub CommandButton1_Click()

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

For i = 34 To A

Next
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
    Worksheetss("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

Worksheets("Stig Okt").Activate


End Sub

没有发生错误,但它实际上没有做任何事情,我不明白为什么?

我认为这就是您的代码应该采用的方式。
我将 Next 移到了 ifs 之后,这样您的代码就可以工作了。

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
        Worksheetss("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
Next
Worksheets("Stig Okt").Activate


End Sub