2017-03-02 172 views
1

我正在使用下面的代码将另一个工作簿中的表格复制到我的“提取”工作簿中。复制表格excel vba

此代码有效,但我需要指定我正在查找的表。我希望能够使用可以在指定表格中找到表格的程序,或者是包含数据并复制这些单元格的所有单元格。

Sub SelectingTable() 

Set Extract = Workbooks("Test1") 
Set Pastdue = Workbooks("Past Due Data") 

'Look for Past Due table 

Pastdue.Activate 

    Pastdue.Worksheets("Sheet1").ListObjects("Table4").DataBodyRange.Copy 

'Paste table in extract  

Extract.Activate 

    Extract.Paste Destination:=Worksheets("Sheet1").Range("B10") 


End Sub 

在这段代码中,我基本上是在过期工作簿中查找table4并将其粘贴到我的提取中。我是新的excel vba,所以我希望你能帮助我。谢谢。

+0

看看这有助于https://msdn.microsoft.com/en-us/library/office/ff840732.aspx – 0m3r

回答

0

嗯你想提取一个特定的表或复制所有的表?对于后者,你可以通过刚才的所有表

Sub SelectingTable() 
Dim tbl as listObject 
Set Extract = Workbooks("Test1") 
Set Pastdue = Workbooks("Past Due Data") 

'Loop through table 
pasteRow = 1 'set which row to paste 
For each tbl in Pastdue.Worksheets("Sheet1").ListObjects 

     rowsCount = tbl.range.rows.count - 1 'minus header 
     tbl.DataBodyRange.Copy extract.worksheets("Sheet1").cells(pasteRow,1) 

     pasteRow = rowsCount +3 

next tbl 


End Sub 
+0

谢谢环,它的工作原理。每张纸只有一张桌子,但我只想指定纸张并复制桌子,而不必放置桌子的标签。 –