我一直在寻找一段时间,我看到有关从特定行开始粘贴整个列的帖子,但就我而言,我的列是基于if语句的值。我仍然是一个业余爱好者,所以我猜测答案与在某个地方设置i
来查找正确的列有关,但是我不知道如何在我的情况下将其合并。下面的代码有效,我只是不知道如何从第3行开始复制,而不是使用EntireColumn
。谢谢您的帮助,如果我遗漏了任何信息,请通知我。
Sub ColumnCopy()
For Each cell In ActiveWorkbook.Sheets("Sheet1").Range("B5:AZ3000")
If cell.Value = "Active" Then Cell.EntireColumn.Copy Destination:=ActiveWorkbook.Sheets("Sheet2").Columns(2)
Next
End Sub
答案 0 :(得分:1)
我会为Range.Find
方法修改一些选项。区分大小写?看看xlPart
或xlWhole
?等等。当前设置为从Columns A - Z
搜索以找到Active
。您可以根据需要扩展此
Option Explicit
Sub FindHeader()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim Found As Range, LRow As Long
Set Found = ws.Range("A5:Z5").Find("Active")
If Not Found Is Nothing Then
LRow = ws.Cells(ws.Rows.Count, Found.Column).End(xlUp).Row
ws.Range(ws.Cells(3, Found.Column), ws.Cells(LRow, Found.Column)).Copy
ThisworkBook.Sheets("Sheet2").Range("B3").PasteSpecial xlPasteValuesAndNumberFormats
End If
End Sub