首页 > 解决方案 > 如果只是数据值自动发生变化,如何复制每个数据值以粘贴到另一张表中?

问题描述

你如何向我提供过去的逻辑,这就是例子。数据正在上传到我的 excel 中,以支付类似单元格(1,1)= 200 单元格(1,2)= alpa 单元格(2,1)= 250 单元格(2,2)= veta 单元格(i,1 ) = ___ 单元格(i,2) = _____ ...................

标签: excelvbaexcel-2016

解决方案


可以尝试如下

Public Var1, Var2, Var3, Var4
Private Sub Workbook_Open()
Dim Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Sheet1")

    With Ws
    'May use loop or Directly assigned  to array if range is large
    Var1 = .Range("B2").Value
    Var2 = .Range("C2").Value
    Var3 = .Range("D2").Value
    Var4 = .Range("E2").Value
    End With

End Sub

并在Sheet1计算事件

Private Sub Worksheet_Calculate()
Dim Cvar1, Cvar2, Cvar3, Cvar4
Dim LastRow As Long


    Dim Ws1 As Worksheet, Ws2 As Worksheet
    Dim ColNo As Long, ColLR As Long

    With ThisWorkbook
    Set Ws1 = .Worksheets("Sheet1")
    Set Ws2 = .Worksheets("Sheet2")
    End With


    With Ws1
    Cvar1 = .Range("B2").Value
    Cvar2 = .Range("C2").Value
    Cvar3 = .Range("D2").Value
    Cvar4 = .Range("E2").Value
    End With

    If Cvar1 <> Var1 Or Cvar2 <> Var2 Or Cvar3 <> Var3 Or Cvar4 <> Var4 Then
        With Ws2
        LastRow = .Range("B" & Rows.Count).End(xlUp).Row + 1
        .Range("B" & LastRow).Value = Cvar1
        .Range("C" & LastRow).Value = Cvar2
        .Range("D" & LastRow).Value = Cvar3
        .Range("E" & LastRow).Value = Cvar4
        .Range("A" & LastRow).Value = Now    ' Used to log time in column A. May delete this line if not required

        Var1 = Cvar1
        Var2 = Cvar2
        Var3 = Cvar3
        Var4 = Cvar4
        End With
    End If

End Sub

根据您的要求修改代码


推荐阅读