【问题标题】:Find specific text but not set a specific cell reference查找特定文本但未设置特定单元格引用
【发布时间】:2014-12-20 00:51:35
【问题描述】:

我正在编写一个 Excel 宏,它需要查找特定文本 Client Remittance Details,然后选择并剪切到工作表的末尾,然后粘贴到另一个选项卡上。对于每个不同的工作簿,文本可以位于不同的行中。宏总是写入一个特定的单元格引用,因此它在下一个文件中出错。这是似乎是错误的宏部分。

Cells.Find(What:="Client Remittance Details", After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False).Activate

Range("A12").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Cut
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste

【问题讨论】:

  • “下一个文件出错”是什么意思?你有完整的宏吗?你能以某种方式分享工作簿吗?
  • 在您的代码中,您正在激活找到的单元格(包含您想要的文本) - 然后选择单元格 A12。这是故意的吗?假设是这样,因为我看不到循环 - 您的问题可能是活动单元格没有像您希望的那样重置(??)取决于您的数据所在的列,将您的 Find 方法更改为After:= Worksheets("MySheetName").Range("A1") 之类的工作?当然,您需要更改工作表名称并使用正确的范围/列

标签: excel vba


【解决方案1】:

你的 Range("A12").Select 正在毁掉你的发现。这个:

Sub luxation()
    Dim r1 As Range, rCopy As Range, rPaste As Range
    Set r1 = Cells.Find(What:="Client Remittance Details", After:=Cells(1, 1), LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False)
    Set rCopy = Range(r1, Cells.SpecialCells(xlCellTypeLastCell))
    Sheets.Add After:=ActiveSheet
    Set rPaste = Range("A1")
    rCopy.Copy rPaste
End Sub

这会将 rPaste 设置为新添加的工作表上的单元格 A1

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 2020-12-24
    • 2016-11-30
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    相关资源
    最近更新 更多