Excel 复制行的宏

Excel 复制行的宏,excel,vba,Excel,Vba,我发现一个宏几乎可以满足我的需要。它复制名为Totals的行,并将该行粘贴到新工作表中。行总数有公式,我需要值。如何调整宏以正确工作 以下是宏代码: Sub RowCopy2() Dim rngFind As Range With Worksheets("Hol. Stats").UsedRange Set rngFind = .Find("Totals", _ LookIn:=xlValues, _ LookAt:=xlWhole, _

我发现一个宏几乎可以满足我的需要。它复制名为Totals的行,并将该行粘贴到新工作表中。行总数有公式,我需要值。如何调整宏以正确工作

以下是宏代码:

Sub RowCopy2()
Dim rngFind As Range

With Worksheets("Hol. Stats").UsedRange
Set rngFind = .Find("Totals", _
            LookIn:=xlValues, _
            LookAt:=xlWhole, _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, _
            MatchCase:=True)
End With
rngFind.EntireRow.Copy _
Destination:=Worksheets("Sheet2").Range("A1")
End Sub
使用

使用


使用range对象测试是否实际找到了搜索字符串是值得的,然后您可以采取其他操作,向用户提供信息等

通过将目标的值设置为源的值,可以绕过复制和粘贴

Sub RowCopy2()
Dim rngFind As Range
Set rngFind = Worksheets("Hol. Stats").UsedRange.Find("Totals", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
If Not rngFind Is Nothing Then Worksheets("Sheet2").Rows(1).Value = rngFind.EntireRow.Value
End Sub

使用range对象测试是否实际找到了搜索字符串是值得的,然后您可以采取其他操作,向用户提供信息等

通过将目标的值设置为源的值,可以绕过复制和粘贴

Sub RowCopy2()
Dim rngFind As Range
Set rngFind = Worksheets("Hol. Stats").UsedRange.Find("Totals", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
If Not rngFind Is Nothing Then Worksheets("Sheet2").Rows(1).Value = rngFind.EntireRow.Value
End Sub

使用行范围名称查找行总数会更快。然后你可以分两行来做

Rows(Range("Totals").Row).Copy
Sheets("Sheet2").Range("A1").PasteSpecial xlPasteValues

这就是在Visual Basic中使用范围名称的原因。范围的其他属性包含在本文的文本中

使用行范围名称查找行总数会更快。然后你可以分两行来做

Rows(Range("Totals").Row).Copy
Sheets("Sheet2").Range("A1").PasteSpecial xlPasteValues

这就是在Visual Basic中使用范围名称的原因。范围的其他属性包含在本文的文本中。

@J.米勒:您可以接受答案,这将表明您的问题得到了回答。答案旁边应该有一个小复选标记供你点击。@J.米勒:你可以接受一个答案,这将表明你的问题得到了回答。答案旁边应该有一个小复选标记供你点击。Ed,1为什么查找速度更快-如果范围存在,两行都是两行,并且都将立即执行2有学术证据表明范围名称会导致金融模型中的更多错误,请看,我的意思是键入/不需要在VBATook中定义任何变量会更快,编辑时间太长!输入更快/更容易记忆,无需记录宏或执行web搜索/不需要在VBA中定义任何变量,范围名称会导致错误…所讨论的研究是关于公式的…VBA将从普通用户中进一步删除,如果它停止工作,则假设变为没错,没有人会注意到,即使他们注意到了,也不会得到纠正。因此,您必须选择一种方法来引用受用户移动行/列等影响最小的电子表格位置。Ed,1为什么查找速度会更快-如果范围存在,两行都是两行,并且都将立即执行2有学术证据表明,范围名称会导致财务模型中出现更多错误,请看,我的意思是键入/不需要在VBATook中定义任何变量会更快,编辑时间太长!输入更快/更容易记忆,无需记录宏或执行web搜索/不需要在VBA中定义任何变量,范围名称会导致错误…所讨论的研究是关于公式的…VBA将从普通用户中进一步删除,如果它停止工作,则假设变为没错,没有人会注意到,即使他们注意到了,也不会得到纠正。因此,您必须选择一种方法来引用受用户移动行/列等影响最小的电子表格位置。