【发布时间】: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 事件。