VBA - скопировать / вставить строку - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь скопировать всю строку, но я хотел бы добавить ее в самый верх другого листа, толкая существующее содержимое на одну строку вниз.Я слил следующий код из некоторых других вопросов в SO.Он работает find, но, как и следовало ожидать, он заменяет содержимое первой строки в целевой таблице.Как бы я вставил его в верхнюю часть целевого листа, чтобы он толкнул все остальное вниз.

Sub CopyHeader()
Dim sw As Worksheet: Set sw = ThisWorkbook.Sheets("OriginalFunding") 'source worksheet
Dim tw As Worksheet: Set tw = ThisWorkbook.Sheets("FundingReturn") 'target worksheet
Const WHAT_TO_FIND As String = "Learner"

            Set FoundCell = sw.Range("A:A").Find(What:=WHAT_TO_FIND)
            If Not FoundCell Is Nothing Then
                sw.Rows(FoundCell.Row).EntireRow.Copy tw.Range("A1")

            Else
                MsgBox (WHAT_TO_FIND & " not found")
            End If

End Sub

1 Ответ

0 голосов
/ 23 декабря 2018

Вставка Shift

'Ссылки на объект не разрешены' Версия

Sub CopyHeader()

  Const cSrc As String = "OriginalFunding"  ' Source Worksheet
  Const cTgt As String = "FundingReturn"    ' Target Worksheet
  Const cSrcRng As String = "A:A"           ' Source Range
  Const cTgtRng As String = "A1"            ' Target Range
  Const cSearch As String = "Learner"       ' Search String

  With ThisWorkbook.Sheets(cSrc)
    If Not .Range(cSrcRng).Find(What:=cSearch) Is Nothing Then
      .Range(cSrcRng).Find(What:=cSearch).EntireRow.Copy
      .Parent.Worksheets(cTgt).Range(cTgtRng).Insert (xlShiftDown)
      Application.CutCopyMode = False
     Else
      MsgBox "'" & cSearch & "' not found."
    End If
  End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...