动态复制并粘贴到其他Excel工作表

时间:2018-12-05 01:15:17

标签: excel vba

我正在尝试从另一个已关闭的Excel工作表复制数据。下面的代码按预期工作正常。但是,我想动态复制所有填充的行和列,而不是在宏中对这些范围进行硬编码。你能帮我吗?

Dim filename As String
filename = Application.GetOpenFilename
Dim src As Workbook
Set src = Workbooks.Open(filename, True, True)
ThisWorkbook.Activate
Worksheets(1).Range("A1:BL648").Formula = src.Worksheets(2).Range("A1:BL648").Formula

就像我提到的那样,上面的代码可以正常工作,但是我对复制和粘贴范围都进行了硬编码。而是将这些设置为动态,以便仅从src.worksheets(2)复制填充的值,然后将其粘贴到工作表(1)。

Worksheets(1).Range("A1:BL648").Formula = src.Worksheets(2).Range("A1:BL648").Formula

1 个答案:

答案 0 :(得分:0)

尝试一下。捕获工作表的已用范围地址,然后粘贴到同一区域。

Dim filename As String
filename = Application.GetOpenFilename
Dim src As Workbook
Set src = Workbooks.Open(filename, True, True)


Dim addressText As String
ThisWorkbook.Activate
addressText = Worksheets(1).UsedRange.Address
Worksheets(1).Range(addressText).Formula = src.Worksheets(2).Range(addressText).Formula