【问题标题】:Excel data replication and automated savingExcel 数据复制和自动保存
【发布时间】:2018-06-11 23:29:23
【问题描述】:

我正在尝试将从一个工作表输入的数据复制到另一个工作表中,然后在每次在 sheet2 上的单独行上完成时每天保存两次。我遇到了一些问题。

我的第一个问题是,当从多个单元格从第一张表拉到第二张表时,我已经连接了数据,并且数据没有正确复制,但所有其他字符串列都是。

第二个问题是,除非专门选择了该工作表,否则按照计时器集将数据自动复制到新行不起作用。其主要用途是打开/更新工作表 1,并让工作表 2 每隔指定的时间段保存数据,但工作表 1 将始终是运行机器上打开的那个。

这是我的连接行之一的示例:

=CONCATENATE(Sheet1!I9,", ",Sheet1!I10,", ",Sheet1!I11,", ",Sheet1!I12)

下面的代码是我在测试期间每 5 秒在第二张纸上写一行的代码。当我切换工作表时,它开始将数据粘贴到活动工作表。是否可以指定只输出到 sheet2?

Option Explicit
Public dTime As Date

Sub ValueStore()
Dim dTime As Date
    Range("A" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("A2").Value
    Range("B" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("B2").Value
    Range("C" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("C2").Value
    Range("D" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("D2").Value
    Range("E" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("E2").Value
    Range("F" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("F2").Value
    Range("G" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("G2").Value
    Range("H" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("H2").Value
    Range("I" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("I2").Value
    Range("J" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("J2").Value




  Call StartTimer1
End Sub


Sub StartTimer1()
    dTime = Now + TimeValue("00:00:05")
    Application.OnTime dTime, "ValueStore", Schedule:=True
End Sub

Sub StopTimer1()
    On Error Resume Next
    Application.OnTime dTime, "ValueStore", Schedule:=False
End Sub

这是我用于按钮启动和停止的代码:

 Private Sub CommandButton1_Click()
    Call StartTimer1
    End Sub

    Private Sub CommandButton2_Click()
    Call StopTimer1
    End Sub

更新

为了进一步澄清,我连接到单个单元格中的字符串在每 5 秒重复复制该行时显示为空白,但未连接的其他单元格将毫无问题地复制。

【问题讨论】:

  • 如果您需要澄清,虽然更新问题非常好,但也请在要求澄清的答案下发表评论。

标签: excel vba


【解决方案1】:

类似这样(根据需要调整工作表名称)

已编辑 - 防止 ColA 上没有内容的问题

Sub ValueStore()

    With ThisWorkbook.Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
        .Value = Now 'put a timestamp in first cell
        'then copy the values
        .Offset(0, 1).Resize(1, 10).Value = ThisWorkbook.Sheets("Sheet1").Range("A2").Resize(1, 10).Value
    End With

    StartTimer1

End Sub

我没有关注你的串联问题。

【讨论】:

  • 为了进一步澄清,我连接到单个单元格的字符串在每 5 秒重复复制该行时显示为空白,但未连接的其他单元格将毫无问题地复制。
  • 您的串联公式究竟是在哪里输入的?计算是否设置为自动?
  • 我在 Sheet2 上输入它们,从 Sheet1 上的多个单元格中提取数据。一个例子是 =CONCATENATE(Sheet1!I9,", ",Sheet1!I10,", ",Sheet1!I11,", ",Sheet1!I12)
  • sheet2 在哪里?
  • 单元格 AB-AI 是 sheet2 上从 sheet1 上的单元格中提取的串联数据,这些数据不会在下一行重复,但所有常规数据都会重复。
猜你喜欢
  • 2018-12-06
  • 2022-10-25
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 1970-01-01
相关资源
最近更新 更多