我的要求是每当我的主工作簿(main.xlsm)sheet1" A1"我需要将整行数据复制到另一个excel(比如working.xlsm)。主表具有从A到M的列,并且应该发生数据捕获取决于A1单元数据的变化。所有数据都保存在第二个excel中,所有新数据都将添加到下一行。
我已将下面的代码添加到我的第二个工作簿(working.xlsm)中,我需要保存所有数据,但它无法正常工作。我不确定如何使用with
函数
Private Sub Worksheet_Calculate()
With Sheet1
With .Cells(.Rows.Count, "B").End(xlUp)
If .Value <> Workbooks("main.xlsm").Worksheets("Sheet1").Range("A1").Value Then
.Offset(1).Value = Sheet1.Range("A:M").Value
End If
End With
End With
End Sub
答案 0 :(得分:1)
如果将此代码放在main.xlsm的工作表中,只要工作表的A1发生更改,就将main.xlsm的A1:M1复制到working.xlsm的Sheet1的第一个空白行。这假设working.xlsm当前也是打开的,供参考。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Set ws = Workbooks("working").Sheets("Sheet1")
If Not Intersect(Target, Range("A1")) Is Nothing Then
Range("A1:M1").Copy
ws.Range("A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1).PasteSpecial xlPasteValues
End If
End Sub
这是你在找什么?