我正在尝试将特定列从一个工作表复制到另一个工作表以使其统一,以便我可以轻松地对其他工作表中的数据进行排序和切片。我在复制包括空白在内的整个列的某些列时遇到了问题。我正在搜索标题中的特定短语,选择整个列(标题除外),然后复制/粘贴到另一个工作表。当我到达具有空白的列时出现问题 - 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
请帮忙!
提前致谢
答案 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