2015-12-23 46 views
0

我有一個線的正顯示應用程序定義或對象定義的錯誤代碼,我不知道爲什麼應用程序定義或對象定義的錯誤 - Excel的VBA .range(細胞

filenm17 = "DSR Consolidated" 
findstring16 = "21" 

filenm17和findstring16是。兩者定義爲字符串。我試圖消除findstring16並用公式代替它得到findstring16(這是一個單元格引用。價值),但仍然沒有奏效。

Workbooks(filenm17).Sheets("5").Range(Cells(67, findstring16 + 2), _ 
           Cells(440, findstring16 + 2)) = firstarray 

請幫幫忙!

回答

2

如果沒有合格工作表,您的Cells()將引用Activesheet:如果不是「5」,那麼它們與Range()不匹配,這將觸發您獲得的錯誤。

嘗試:

With Workbooks(filenm17).Sheets("5") 
    .Range(.Cells(67, CLng(findstring16) + 2), _ 
      .Cells(440, CLng(findstring16) + 2)).Value = firstarray 
End With 
+0

感謝@Tim威廉姆斯,我曾經使用,例如:'範圍(ws.Cells(1,1),ws.Cells(10,10))''不WS .Range(ws.Cells(1,1),ws.Cells(10,10))',可以嗎? 。 (ws是工作表)。 – Fadi

+0

謝謝!現在完美的工作! –

+1

@Fadi - 在常規模塊中工作,但工作表模塊中除了'ws'之外的任何工作表都會失敗,因爲工作表模塊中的非限定範圍(Range)始終是工作表本身。 –

相關問題