這裏是如何Table Connections
添加到新的Workbook
一個例子,一個辦法Refresh
表。
通過ListObjects
每個ListObject
(Tables
)代碼的步驟,.Add
的連接到新Workbook
並放置Table
入Worksheet
。
然後創建一個新的Worksheet
並處理下一個ListObject
。
您可以根據需要更改Workbook
和Worksheet
名稱+路徑。
*請注意,由於不明原因,Table
在將它們放入新的Worksheet
時混合起來,但它不會混合Columns
。
AddTableConnectionsToNewWB代碼:
Sub AddTableConnectionsToNewWB()
Dim tbl As ListObject
Dim tblConn As ListObjects
Dim wb As Workbook
Application.ScreenUpdating = False
Set wb = Workbooks("TableConnections.xlsm")
Set tblConn = Workbooks("TestBook3.xlsm").Worksheets("Sheet2").ListObjects
For Each tbl In tblConn
wb.Connections.Add2 "WorksheetConnection_TestBook3.xlsm!" & tbl, _
"", "WORKSHEET;H:\Projects\TestBook3.xlsm", "TestBook3.xlsm!" & tbl, 7, True, _
False
If wb.Worksheets.Count = 1 Then
With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
Connections("WorksheetConnection_TestBook3.xlsm!" & tbl), Destination:=Range(_
"$A$1")).TableObject
.RowNumbers = False
.PreserveFormatting = True
.RefreshStyle = 1
.AdjustColumnWidth = True
.ListObject.DisplayName = tbl.Name
.Refresh
End With
wb.Worksheets.Add after:=wb.Worksheets(Worksheets.Count)
Else
With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
Connections("WorksheetConnection_TestBook3.xlsm!" & tbl), Destination:=Range(_
"$A$1")).TableObject
.RowNumbers = False
.PreserveFormatting = True
.RefreshStyle = 1
.AdjustColumnWidth = True
.ListObject.DisplayName = tbl.Name
.Refresh
End With
If tblConn.Item(tblConn.Count).Name <> tbl.Name Then
wb.Worksheets.Add after:=wb.Worksheets(Worksheets.Count)
End If
End If
Next
Application.ScreenUpdating = False
End Sub
刷新代碼(這也可以通過簡單地點擊刷新表工具所有按鈕來完成):
Sub RefreshTableConnections()
Dim wb As Workbook
Application.ScreenUpdating = False
Set wb = Workbooks("TableConnections.xlsm")
wb.RefreshAll
Application.ScreenUpdating = True
End Sub
「粘貼鏈接到另一個工作表」 - 你意味着創建一個超鏈接來打開引用的工作表,或者你想「鏡像」數據,因此它始終與原始範圍相同。兩者都是可能的(第二次最簡單的解決方案是數據透視表)。你也可以將你的代碼放在Sheet2的OnActivate事件過程中,並且每次打開該表單時都會執行副本。但是我不明白爲什麼你需要在多個工作表上完全相同的數據。 –
鏡像數據。因爲工作表之一是包含所有表的數據庫工作表。這些表分散在幾個儀表板表中,每當我對數據庫進行更改時,它應該自動修改所有其他表。我可以用單元格完成,但現在它涉及表格,所以我真的需要pastelink將表格互相引用@MátéJuhász – Niva
@Niva可以用表格鏡像數據,我建議查看數據 - >現有連接和谷歌(迄今爲止唯一的問題是,它不復制1對1它重新排列順序排列) – DragonSamu