Excel VBA – 从相同文件夹中的封闭工作簿导入

我试图从一个封闭的工作簿中的一些数据导入到我的活动工作簿。 这是我迄今为止

Sub Import_Data() Dim rng As Range Dim WB2 As Workbook Dim FName As String Dim ChampSpecific1 As Worksheet Set ChampSpecific1 = Sheets("Summary-Champion Specific") FName = Application.ActiveWorkbook.Path + "\AIMS_Report_w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") Set WB2 = Workbooks.Open(Filename:=FName) ThisWorkbook.ChampSpecific1.Range("L3:O6").Value = WB2.Worksheets(2).Range("M3:P6").Value WB2.Close End Sub 

当我运行macros,我得到错误“方法或数据成员未find”突出显示ThisWorkbook.ChampSpecific1.Range (ChampSpecific1部分)。 这应该是拉工作表“摘要 – 冠军具体”不应该吗?

最好的祝福

删除ThisWorkbook.ThisWorkbook.ChampSpecific1.Range("L3:O6").Value ,它应该工作。 喜欢这个:

ThisWorkbook.ChampSpecific1.Range("L3:O6")

问题出现了,因为您已经在ChampSpecific1工作表上ChampSpecific1了一个集合,并且知道他的Parent 。 因此,如果您尝试引用一个新的Parent ,它不喜欢它。

要获得Parent在错误之前行上写入以下Debug.Print ChampSpecific1.Parent.Name

您不需要ThisWorkbook限定符,因为它已经设置。 试试这个(使用SourceShtTargetSht来防止令人困惑:

 Sub Import_Data() Dim SourceSht As Worksheet Dim TargetSht As Worksheet Dim FName As String FName = Application.ActiveWorkbook.Path + "\AIMS_Report_w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") Set SourceSht = Workbooks.Open(Filename:=FName).Worksheets(2) Set TargetSht = Sheets("Summary-Champion Specific") TargetSht.Range("L3:O6").Value = SourceSht.Range("M3:P6").Value End Sub