2017-05-15 38 views
2

我有兩個工作簿。將行中的每個值複製到值匹配的另一個工作簿中?

工作簿

Supplier Name  Date 

Supplier A   Jun-17 
Supplier B   Jun-17 
Supplier C   May-17 

工作簿乙

Supplier Name 
Supplier A 
Supplier B 

我試圖複製他們的日期Apr-17匹配所有供應商的名稱。 Jun-17寫在單元格B1中名爲(資產)的表單上。

我得到一個錯誤

Object doesn't support this property or method. 

在此行中:

If ThisWorkbook.Worksheets(1).Format(Range("O" & j).Value, "mmm") = ThisWorkbook.Worksheets("assets").Range("b1").Value Then 

我的代碼:

Sub Monthly() 


On Error Resume Next 

UserForm1.Show 
If Format(Range("O211").Value, "mmm") = Worksheets("assets").Range("b1").Value Then 
MsgBox "Yes" 
End If 

Dim WB As Workbook 
On Error Resume Next 
Set WB = Workbooks("PAI Monthly Audits.xlsx") 
On Error GoTo 0 
If WB Is Nothing Then 
    Set WB = Workbooks.Open("G:\QUALITY ASSURANCE\03_AUDITS\PAI\templates\PAI Monthly Audits.xlsx", UpdateLinks:=False) 
End If 



With ThisWorkbook.ActiveSheet 
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row 
    j = 6 

    For i = 2 To LastRow 


     If ThisWorkbook.Worksheets(1).Format(Range("O" & j).Value, "mmm") = ThisWorkbook.Worksheets("assets").Range("b1").Value Then 
       .Range("B" & i).Value = ThisWorkbook.Worksheets(1).Range("B" & j).Value 
       j = j + 1 
      End If 
    Next i 
End With 



End Sub 

請能有人告訴我我要去哪裏錯了嗎?

+0

題外話題:'On Error Resume Next'可以讓調試成爲一項難以置信的難題。發生這種情況是因爲它隱藏了你的錯誤。考慮在測試過程中對此進行評論,並且如果可能的話,重構代碼以捕獲錯誤,而不是壓制錯誤。 –

回答

1

嘗試像這樣...

If Format(ThisWorkbook.Worksheets(1).Range("O" & j).Value, "mmm") = ThisWorkbook.Worksheets("assets").Range("b1").Value Then 
0

運行時錯誤可以與已提出的建議進行修正(在ThisWorkbook.Worksheets(1)應該用來標識不FormatRange("O" & j)父,),但不意味着你的代碼將起作用。作爲真實日期,17-Jun-2017的原始值爲42,903。 Format(42903, "mmm")返回"Jun"作爲文本字符串。文本不等於 42903.

如果兩個資產!B1和「工作簿中的」 O列的日期是真實日期,那麼你只需要比較它們的原始值「複製所有供應商的名稱他們匹配日期Jun-17'。

If ThisWorkbook.Worksheets(1).Range("O" & j).Value2 = ThisWorkbook.Worksheets("assets").Range("b1").Value2 Then 

除此之外,使用AutoFilter選擇所有具有17-Jun-2017日期的行將會更有效。請參閱Using cell values as a date range autofilter。即使對封閉的工作簿使用INDEX/MATCH函數對也可能更好。

+0

你確定它應該是'ThisWorkbook.Worksheets(「assets」)'?你不打開一個名爲PAI Monthly Audits.xlsx的工作簿嗎? – Jeeped

相關問題