excel 两个文件夹中的表格,一个表格内容和格式更改,另一个表格也跟着更改。
4条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
要实现Excel两个文件夹中的表格数据同步,您可以使用VBA(Visual Basic for Applications)宏来自动更新目标工作簿的数据。以下是详细的步骤:
- 打开源工作簿(包含要同步的数据的工作簿),然后按下
Alt + F11打开VBA编辑器。 - 在VBA编辑器窗口左侧的项目浏览器中,选择“插入”->“模块”,创建一个新的模块。
- 粘贴下面的VBA宏代码到新创建的模块中:
Sub SyncData() Dim srcWB As Workbook Dim destWB As Workbook ' 设置源工作簿路径和名称 Set srcWB = Workbooks.Open("C:\path\to\source.xlsx") ' 设置目标工作簿路径和名称 Set destWB = Workbooks.Open("C:\path\to\destination.xlsx") ' 检查源工作表是否与目标工作表匹配 If srcWB.Sheets(1).Name <> destWB.Sheets(1).Name Then MsgBox "源工作表和目标工作表名称不匹配" Exit Sub End If ' 复制并粘贴数据 srcWB.Sheets(1).Range("A1:Z100").Copy Destination:=destWB.Sheets(1).Range("A1") ' 将A1:Z100范围的数据从源复制到目标 ' 关闭源工作簿,但保留目标工作簿打开 srcWB.Close SaveChanges:=False ' 保存目标工作簿 destWB.Save End Sub- 替换上述代码中的
"C:\path\to\source.xlsx"和"C:\path\to\destination.xlsx"为实际的源工作簿和目标工作簿的路径。 - 在VBA编辑器中,点击“运行”按钮或按
F5来测试宏。确保源工作簿和目标工作簿都处于关闭状态,然后运行宏。这将同步两份工作簿中的数据。 - 若要使同步在源工作簿每次更改后自动执行,您可以在源工作簿中添加一个事件驱动的宏。回到源工作簿,再次进入VBA编辑器,右键点击“Sheet1”(或其他相应的工作表标签),选择“查看代码”。在弹出的代码窗口中,粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) SyncData End Sub- 这样,每当源工作表中的任何单元格发生变化时,都会触发
SyncData宏,从而实现数据同步。
为了保持数据同步,您需要定期运行源工作簿,并且目标工作簿必须是可写的。同时,确保源和目标工作簿的结构相同,包括列数、列标题等,以便正确地进行数据复制。
当您需要更新目标工作簿的数据时,只需更改源工作簿,然后运行源工作簿中的宏,或让其自动触发。这样,目标工作簿就会自动更新为与源工作簿相同的数据了。
解决 无用评论 打赏 举报 编辑记录- 打开源工作簿(包含要同步的数据的工作簿),然后按下