2013-06-24 26 views
1

我的下面的代碼顯示錯誤消息「應用程序定義或對象定義的錯誤」,我不知道爲什麼。你可以看一看,幫我解決問題嗎?Excel - 跨多個工作簿的查找錯誤

Private Sub CommandButton1_Click() 

j = 3 

For i = 1 To 46 

Sheets("Income").Range(Cells(6, j), Cells(51, j)).Formula = "=VLOOKUP($B6,[" & Cells(5, i + 2).Value & ".xlsx]2 Intercompany markup!$A$1:$E$70,4,FALSE)" 

j = j + 1 

Next i 

End Sub 

感謝您的幫助。

回答

1

當您使用該語法在「收入」工作表上定義範圍時,您需要爲.Range(Cells(x,y))指定工作表。

你也應該聲明你的變量。

它每次都可以輸入完全限定的表名,所以你也應該聲明一個工作表變量。

試試這個:

Dim ws As Worksheet 
    Dim j As Integer 
    Dim i As Integer 

    Set ws = ThisWorkbook.Sheets("Income") 
    j = 3 

    For i = 1 To 46 

     ws.Range(ws.Cells(6, j), ws.Cells(51, j)).Formula = _ 
      "=VLOOKUP($B6,[" & ws.Cells(5, i + 2).Value & ".xlsx]2 Intercompany markup!$A$1:$E$70,4,FALSE)" 
     j = j + 1 

    Next i 
+0

現在,它已經工作好多了!謝謝:)但是,我收到了一個隨機的其他錯誤 - 在通過宏完成了幾列之後,它突然無法識別下一個工作簿的路徑,儘管它與其他工作簿位於完全相同的位置。你會知道如何解決這個問題嗎? – jcv

+0

我認爲這是一個不同的問題。你最好的辦法是在另一個問題中與代碼一起描述這個問題,以及它失敗的地方。確保包含錯誤。 –

+0

事情沒有直接的「錯誤」發生;這真的很奇特。您將擁有正確的文件名稱,例如[test.xlsx],包括正確的工作表參考,但Excel會打開一個瀏覽器窗口,因爲它不能識別位置,儘管它與被識別的其他工作簿位於同一位置。你會碰巧知道這可能是什麼?否則,我會按照你的建議解決這個問題。無論如何,謝謝! – jcv

相關問題