【问题标题】:How to automatically copy data entry from 1 workbook into another without having to activate macro or open workbook如何自动将数据条目从一个工作簿复制到另一个工作簿,而无需激活宏或打开工作簿
【发布时间】:2018-06-06 21:43:00
【问题描述】:

我在尝试执行以下操作时遇到了问题:

我有 2 个工作簿,其中一个称为 Master,另一个称为 Slave。 Master 有一个名为 Data 的工作表,数据每隔一段时间就会自动输入到其中。数据被输入到从 A8 到 BL8 的单元格中。每次存储新数据时,它会将旧数据向下推并再次保存到 A8:BL8 中。从站有一个名为 DATA 的工作表,格式完全相同。

我的目标如下:

我想编写一个 VBA 代码,每次输入新数据时(通常每 24 小时有 6-7 个新数据条目)主工作簿(称为数据的工作表),我希望它将相同的信息更新到从工作簿(称为 DATA 的工作表)甚至无需打开或运行工作簿(数据可以在一天中的随机时间输入,所以我并不总是在身边跟踪并需要它自己传输数据)。

两个工作簿都保存在我计算机上的不同位置。我的尝试奏效了,但是我只能通过复制单元格范围 A8:BL8 中的当前值并通过使用按钮(插入)触发宏将其移动到我想要的工作簿来使其工作......(我希望我的问题很清楚)所以它只更新最新数据而不是所有数据。

我的最终目标是能够在许多具有相同格式的工作簿之间执行此操作(进入同一个工作簿 Slave(worksheet DATA))

我的代码通过分配给此宏的按钮从工作簿从属(工作表数据)运行。

Sub OpenCopyPaste()

    Dim wb As Workbook
    Dim Reportwb As Workbook
    Set Reportwb = Workbooks("Slave.xlsm")
    Set wb = Workbooks.Open(Filename:="C:\Users\yilmadu001          \Desktop\Master.xlsm")
    wb.Sheets("Data").Range("A8:BL8").Copy
    Reportwb.Sheets("DATA").Range("A8:BL8").Insert Shift:=xlDown
    Reportwb.Save
    wb.Close False
    Application.ScreenUpdating = True
End Sub

【问题讨论】:

  • 我很清楚,你想编辑另一个 excel 文件的内容而不打开它...?
  • 我猜他的意思是“不通过在 Windows UI 上单击来打开文件”
  • 无需激活宏或打开工作簿 - 致电比尔盖茨并索要 Excel 的源代码。然后雇佣一个摇滚明星开发团队,给他们大约 6 个月的时间。然后ping我,我也想看看结果! :)
  • 从技术上讲,如果您禁用和启用屏幕更新,您可以打开、编辑、保存和关闭工作簿,而不会看到它,但是在每次单元格更改时触发此操作会使使用工作簿成为一场噩梦。跨度>
  • @DYilm 在这种情况下,您的问题的答案是肯定的,但我不建议这样做,因为它会使您的工作簿几乎无法使用。您最好像现在一样手动执行此操作,或者捕获 onsave 或 beforeclose 事件。

标签: vba excel


【解决方案1】:

根据您的评论,要在保存之前运行您的代码,请将以下内容放入 ThisWorkbook 对象中。

Private Sub Workbook_BeforeSave(Cancel As Boolean)

    Dim wb As Workbook
    Dim Reportwb As Workbook
    Set Reportwb = Workbooks("Slave.xlsm")
    Set wb = Workbooks.Open(Filename:="C:\Users\yilmadu001          \Desktop\Master.xlsm")
    wb.Sheets("Data").Range("A8:BL8").Copy
    Reportwb.Sheets("DATA").Range("A8:BL8").Insert Shift:=xlDown
    Reportwb.Save
    wb.Close False
    Application.ScreenUpdating = True

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多