槿夏年华 2024-04-19 22:37 采纳率: 0%
浏览 19

excel两个表格数据同步

excel 两个文件夹中的表格,一个表格内容和格式更改,另一个表格也跟着更改。

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-19 22:37
    关注

    引自免费微信小程序:皆我百晓生

    要实现Excel两个文件夹中的表格数据同步,您可以使用VBA(Visual Basic for Applications)宏来自动更新目标工作簿的数据。以下是详细的步骤:

    1. 打开源工作簿(包含要同步的数据的工作簿),然后按下Alt + F11打开VBA编辑器。
    2. 在VBA编辑器窗口左侧的项目浏览器中,选择“插入”->“模块”,创建一个新的模块。
    3. 粘贴下面的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
    
    1. 替换上述代码中的 "C:\path\to\source.xlsx""C:\path\to\destination.xlsx" 为实际的源工作簿和目标工作簿的路径。
    2. 在VBA编辑器中,点击“运行”按钮或按 F5 来测试宏。确保源工作簿和目标工作簿都处于关闭状态,然后运行宏。这将同步两份工作簿中的数据。
    3. 若要使同步在源工作簿每次更改后自动执行,您可以在源工作簿中添加一个事件驱动的宏。回到源工作簿,再次进入VBA编辑器,右键点击“Sheet1”(或其他相应的工作表标签),选择“查看代码”。在弹出的代码窗口中,粘贴以下代码:
    Private Sub Worksheet_Change(ByVal Target As Range)
        SyncData
    End Sub
    
    1. 这样,每当源工作表中的任何单元格发生变化时,都会触发SyncData宏,从而实现数据同步。

    为了保持数据同步,您需要定期运行源工作簿,并且目标工作簿必须是可写的。同时,确保源和目标工作簿的结构相同,包括列数、列标题等,以便正确地进行数据复制。

    当您需要更新目标工作簿的数据时,只需更改源工作簿,然后运行源工作簿中的宏,或让其自动触发。这样,目标工作簿就会自动更新为与源工作簿相同的数据了。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月19日