使用VB.NET从Excel中的特定范围复制

时间:2013-07-11 16:31:27

标签: vb.net excel pivot-table

我目前正在构建一个程序,我从一个工作簿中复制数据透视表并将其复制到另一个工作簿中,目前我在复制表时遇到问题,因为行数取决于每月购买产品的人数。我尝试在特定范围内使用UsedRange,但它不起作用。这些方面的东西......

    targetSheet.Range("N3:S50").UsedRange.Copy()

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

Range("A1:B2").Select
Selection.Copy

答案 1 :(得分:0)

以下代码获取特定工作表的数据(在本例中为tSheet)。然后它找到左上角的单元格地址,复制所有数据,从电子表格中删除所有内容,然后将其粘贴回来。这样可以在特定工作表上重置UsedRange。

Dim values 'holds info on the usedRange of the current spreadsheet
Dim usedRangeAddress As String 'holds the address of the usedRange of the current spreadsheet (i.e. "A1")
usedRangeAddress = tSheet.UsedRange.Address 'get the upper most left cell address
values = tSheet.UsedRange.Value'Store values of all cells to array.     
tSheet.Cells.Delete() 'Delete all cells in the sheet     
tSheet.Range(usedRangeAddress).Value = values'Restore values to their initial locations     

所以,有了这个,你应该能够利用第一行代码,然后第二行粘贴到你的otherSheet

Dim values 'holds info on the usedRange of the current spreadsheet
values = tSheet.UsedRange.Value'Store values of all cells to array.     
otherSheet.Range(yourTargetAddress).Value = values