需要根据包含空白单元格的标题信息将一个工作表复制到另一个工作表

时间:2016-10-27 20:30:32

标签: excel vba excel-vba

我正在尝试将特定列从一个工作表复制到另一个工作表以使其统一,以便我可以轻松地对其他工作表中的数据进行排序和切片。我在复制包括空白在内的整个列的某些列时遇到了问题。我正在搜索标题中的特定短语,选择整个列(标题除外),然后复制/粘贴到另一个工作表。当我到达具有空白的列时出现问题 - xlDown功能在空白单元处停止,但是如果我使用xlCellTypeLastCell它会选择我要复制的列右侧的所有列,因此我最终会覆盖我的其他工作表中的其他单元格。以下是我正在使用的代码示例:

    ' Copy Potential Name

Cells.Find(What:="Potential* Name", After:=ActiveCell, LookIn:=xlFormulas _
    , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
Range(Selection.Offset(1, 0), Cells.SpecialCells(xlCellTypeLastCell)).Select
Selection.Copy
Sheets("Formatted Sheet").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Sheets("Sheet5").Select
Application.CutCopyMode = False

如果我尝试使用LastRow功能; e.g。

LastRow = Sheets("Sheet5").UsedRange.Rows.Count

我无法选择列 - 当我使用

时它会返回错误
Range(Selection.Offset(1, 0), LastRow).Select

请帮忙!

提前致谢

1 个答案:

答案 0 :(得分:0)

更安全地从表格底部使用End(xlUp)

Dim f As Range, rng As Range

Set f = Cells.Find(What:="Potential* Name", After:=ActiveCell, LookIn:=xlFormulas, _
                   LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                   MatchCase:=False, SearchFormat:=False)

If Not f Is Nothing Then

    With f.Parent
        Set rng = .Range(f.Offset(1, 0), .Cells(.Rows.Count, f.Column).End(xlUp))
    End With

    rng.Copy
    Sheets("Formatted Sheet").Range("B2").PasteSpecial Paste:=xlPasteValues, _
              Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Else

    MsgBox "header not found!"

End If

Sheets("Sheet5").Select
Application.CutCopyMode = False