这里是如何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