如何执行以下操作: 我在一个工作表中有2张纸,即;工作表1和工作表2。 现在,我想在工作表1中插入新行并填充该单元格,当我插入该行时,我想将同一行自动插入工作表2中,但没有一些列。我在Google上搜索了很多论坛和网站,但找不到任何有用的东西。
第1张纸
第2张纸
答案 0 :(得分:1)
您可以在工作表1中使用以下代码。
Option Explicit
Dim Old_lines As Long, New_Lines As Long, Row_Number As Long
Dim PrNo As String, PrNa As String, R2 As String, R3 As String, R5 As String
Private Sub Worksheet_Change(ByVal Target As Range)
With ThisWorkbook.Worksheets("Sheet1")
New_Lines = .Cells(.Rows.Count, "A").End(xlUp).Row
If Old_lines < New_Lines Then
With Worksheets("Sheet2")
.Rows(Row_Number).EntireRow.Insert
.Range("A" & Row_Number).Formula = "=Sheet1!A" & Row_Number
.Range("B" & Row_Number).Formula = "=Sheet1!B" & Row_Number
.Range("C" & Row_Number).Formula = "=Sheet1!D" & Row_Number
.Range("D" & Row_Number).Formula = "=Sheet1!E" & Row_Number
.Range("E" & Row_Number).Formula = "=Sheet1!G" & Row_Number
End With
End If
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ThisWorkbook.Worksheets("Sheet1")
Old_lines = .Cells(.Rows.Count, "A").End(xlUp).Row
Row_Number = Target.Row
End With
End Sub
答案 1 :(得分:0)
您可以在没有任何VBA的情况下进行操作。代替VBA复制数据,请使用Power Query。查询Sheet1中的数据作为源。删除不需要的列。将查询结果加载到Sheet2中。
将新数据添加到Sheet1后,只需单击数据>全部刷新来刷新查询。
如果要使用VBA将其自动化,请在Sheet1上使用Worksheet_Change事件,该事件等效于“数据”>“全部刷新”。宏记录器将为您显示所需的命令。
这可以通过单击几个功能区按钮来实现。没有编码噩梦。数据不必重复。
生活可以很简单。几年前许多只能通过VBA进行的操作现在可以通过Power Query更快,更轻松地完成。使用当前技术代替过时的概念。