2017-07-03 71 views
0

我有一个中央工作表,其中包含多个表中的所有数据。假设我有表A,B,C和D,都在一个中央工作表中。更新自动更改其他工作表的主工作表

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

我曾尝试是插入从开发人员标签命令按钮进主(中心)工作表,然后插入此代码:

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

*我的问题是,在Excel中,我是否可以对其进行编程,以便在更新我的中央工作表时,工作表2,3和4会根据我在中央工作表中的更改而发生变化?答案是YES – Vityata

+0

告诉我更多@Vityata – JasonBaik

+3

https ://stackoverflow.com/help/how-to-ask – Vityata

回答

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 

您需要:

  • TABLEA在当前Worksheet
  • 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 
+1

来到这里建议处理相同的事件以及 –

+0

@JasonBayldon - 事件是一个功能,可以解决大量的问题:) – Vityata

+0

@Vityata等待,那么这段代码的哪一部分应该被个性化? – JasonBaik

相关问题