更新自动更改其他工作表的主工作表

时间:2017-07-03 13:45:28

标签: excel vba excel-vba

我有一个中央工作表,其中包含几个表中的所有数据。假设我将表A,B,C和D都放在一个中央工作表中。

在其他三个工作表中,我在工作表2中有表B,工作表3中有表C,工作表4中有表D.

我尝试过将开发人员选项卡中的命令按钮插入主(中央)工作表,然后插入此代码:

    Private Sub CommandButton1_Click()
Sub copyAOne()
    Dim ws As Worksheet
    Dim newValue As Range
    Set newValue = ActiveSheet.Range("A1")
    For Each ws In Worksheets
        ws.Range("A1") = newValue
    Next ws
End Sub

1 个答案:

答案 0 :(得分:1)

这是启动你的事情:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [tableA]) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub

    Dim wkb As Workbook
    Set wkb = Workbooks.Open("C:\Desktop\Test2.xlsm")

    wkb.Worksheets(1).Cells(Target.Row, Target.Column).Value = Target.Value

    wkb.Save
    'wkb.Close

End Sub

您需要以下内容:

  • 当前Worksheet
  • 中的tableA
  • Test2.xlsm
  • 您需要将代码放在工作表中,而不是放在模块中。
  • 可能它不会完全按预期工作,但主要的想法就是这个。
  • 确保在运行文件之前关闭“C:\ Desktop \ Test2.xlsm”。

将代码放在那里: enter image description here

一般来说,如果你想用一个按钮来做,而不想用一个事件,你可以使用它:

Option Explicit

Public Sub TestMe()

    Dim wkb As Workbook
    Set wkb = Workbooks.Open("C:\Users\Desktop\Test2.xlsm")

    ThisWorkbook.Worksheets(1).Range("A1:D16").Copy
    wkb.Worksheets(1).Range("A1:D16").PasteSpecial xlPasteValues
    Application.CutCopyMode = False

    wkb.Save
    'wkb.Close

End Sub