2017-08-03 54 views
1

我試圖從同一文件夾中的封閉工作簿中導入一些數據到我的活動工作簿中。這是我迄今爲止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 

當我運行宏我得到的錯誤「方法或數據成員未找到」凸顯ThisWorkbook.ChampSpecific1.Range(該ChampSpecific1部分)。它應該拉動工作表「總結 - 冠軍具體」不應該嗎?

問候

+0

你可以從行中刪除'ThisWorkbook'並再次檢查嗎? – Vityata

回答

2

ThisWorkbook.ChampSpecific1.Range("L3:O6").Value刪除ThisWorkbook.,它應該像這樣工作:

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

問題就來了,因爲你已經在ChampSpecific1工作表上找到一組,並且它知道他的Parent。因此,如果您嘗試引用新的Parent,它不會喜歡它。

要獲得Parent,請在出錯前寫下以下Debug.Print ChampSpecific1.Parent.Name

+0

這很有用,謝謝。下一個問題是它不會將WB2中的值複製並粘貼到ChampSpecific1。工作表(2)代碼的一部分是否選擇左側第二個工作表? – Dullspark

+1

@Dullspark - 只需編寫'debug.print Worksheets(2).Name'並自行檢查。 – Vityata

+1

我在哪裏寫下來?它應該只顯示一些東西,當我運行宏? - 找到它 - 將其放入即時窗口。這是有用的知道謝謝 – Dullspark

0

,因爲它已經設爲您不需要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 
+0

工作表示感謝。下一個問題是它不會將WB2中的值複製並粘貼到ChampSpecific1。工作表(2)'代碼的一部分是否選擇了從左邊開始的第二張? – Dullspark

+0

是的,這是指左側第二張。回答編輯修復和簡化。 – CLR

相關問題