如何使用 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
如果满足条件,我想复制一些特定的列。 也就是说,如果第 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