macros复制一行
我发现了一个几乎可以满足我需要的macros。 它复制一个名为“汇总”的行,并将该行粘贴到新的工作表中。 行“总计”有公式,我需要价值。 如何调整macros以正确工作?
这里是macros代码:
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
使用
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 Sheets("Sheet2").Range("A1").PasteSpecial xlPasteValues End Sub
使用范围对象来testingsearchstring是否被find是值得的,然后你可以采取另一种行动,向用户提供信息等
而且,通过将目标的值设置为源的值,可以绕过复制和粘贴。
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中使用范围名称的原因。 Excel帮助video文本中介绍了范围的其他属性