2017-07-03 127 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