使用范围

时间:2018-06-12 22:18:12

标签: excel-vba vba excel

任何帮助都会受到极大的欢迎。

我试图编写将一系列单元格从一个工作簿复制到另一个工作簿的vba代码。目标文件处于活动状态,并在A列中包含日期;这用于打开源文件(文件名包含日期),然后复制单元格并从源文件粘贴到目标文件中。如果我手动指定目标范围,代码可以正常工作,如下所示:

x.Sheets("Sheet1").Range("B4:D4").Copy Destination:=y.Sheets("Sheet1").**Range("B5")**

然而;我希望目标范围是动态的......我希望它与活动单元格相同。我已经以各种方式对其进行了修改,但仍无法找到解决方案:

Sub OpenWb()

Dim FileDate As Date
Dim x As Workbook
Dim y As Workbook

Application.ScreenUpdating = False

FileDate = ActiveCell.Offset(0, -1)


'Define x and open y

Set y = ActiveWorkbook

Set x = Workbooks.Open("C:\Users\yatesa\Documents\" & Format(FileDate, "dd-mm-yy") & " Production Data.xlsx")

'Transfers values from x to y

x.Sheets("Sheet1").Range("B4:D4").Copy Destination:=y.Sheets("Sheet1").**Range(ActiveCell)**

'Close x

x.Close

End Sub

非常感谢。

1 个答案:

答案 0 :(得分:0)

非常感谢您的投入;我现在已经解决了这个问题。打开源文件时,活动单元焦点丢失了......可能很明显;但我昨晚无法看到它。我添加了一行来存储目标活动单元格,然后能够重新调用它。我将在今天晚些时候为那些可能感兴趣的人重新发布代码。再次感谢!