簡體   English   中英

使用VBA將行復制到excel中的另一個工作表

[英]Copy row to another sheet in excel using VBA

首先,我從未使用過VBA(或VB),所以請記住這一點。 我試圖將一行復制到我的工作簿中的另一個工作表。 因此,只要第1行中的任何更改發生在sheet1中,該行應該在sheet2的第2行中復制。 如果在sheet1中修改了第3行,則應在sheet2上修改第5行。 我希望sheet2上每行之間有一個空行。 我將嘗試使用VBA創建一個新表來放置在這個空行中。 無論如何,我的Selection.Paste線上出現錯誤。 我對VBA的知識非常有限(一小時值得),所以我可以完全放棄我想做的事情。

Private Sub Worksheet_Change(ByVal Target As Range)
 'Do not worry about column headers
  If Target.Row = 1 Then Exit Sub

  'On Error GoTo ErrHandler
  Application.EnableEvents = False 'This might be necessary?

  Sheet1.Rows(Target.Row).Select
  Selection.Copy
  Sheet1.Rows(Target.Row).Copy

  If Target.Row = 2 Then
    Sheet2.Rows(Target.Row).Select
    Selection.Paste
  Else
    Sheet2.Select
    Sheet2.Rows(Target.Row + Target.Row - 1).Select
    Selection.Paste
  End If

ErrHandler:
  Application.EnableEvents = True 'This might be necessary?
End Sub

編輯:Selection.Paste更改為ActiveSheet.Paste ,它現在正在工作。

編輯:增加處理多區域選擇

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a As Range, rw As Range
    For Each a In Selection.Areas
        For Each rw In a.Rows
            If rw.Row >= 2 Then
                rw.EntireRow.Copy Sheet2.Cells(2 + (rw.Row - 2) * 3, 1)
            End If
        Next rw
    Next a
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM