0

我目前正在构建一个程序,我从一个工作簿复制数据透视表并将其复制到另一个工作簿中,并且目前无法复制表格,因为行数取决于每月有多少人购买产品。我尝试在该特定范围内使用 UsedRange,但它不起作用。沿着这些路线的东西......

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

有任何想法吗?

4

2 回答 2

0
Range("A1:B2").Select
Selection.Copy
于 2013-07-11T17:22:48.137 回答
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
于 2013-07-11T18:17:50.527 回答