2012-10-31 126 views
0

你好我已經寫了一個代碼來設置範圍屬性,它在一段時間內正常工作。 下面的例子是我的代碼。設置範圍屬性

row_no = Ydim1 * matrix - Ydim1 + matrix 
Set rng1 = Range("A" & row_no & ":" & c & row_no).Find(What:=somevar, LookIn:=xlValues,  Lookat:=xlWhole) 

如果Ydim1等於72和矩陣是等於1,那麼行等於1和c =「EO」,那麼它將工作正確 如果ydim1等於74和矩陣= 1,則也row_no = 1只,但RNG1顯示什麼

預先感謝您

+0

當測試完全識別範圍對象時。例如:'ThisWorkbook.Worksheets(「Sheet1」)。Range(「A」&row_no .....'。以防萬一。 – CaBieberach

+0

是否確定無論在A1和EO1之間實際存在「somevar」? –

回答

2

歡迎來到調試。

使用

debug.print "A" & row_no & ":" & c & row_no 

檢查,如果你的範圍已正確設置,並檢查所有的行數> 0
還可以使用

debug.print somevar 

來檢查您的查找值。
在這種特殊情況下,可以在調試模式下使用.select來視覺檢查您的範圍。

您也可以達到類似的結果,使用立即窗口CMD

print <variablename> 
? <variablename> 'This is the same, represented by a question mark 

在調試模式下,你要調試的線)後一個斷點。

如果你按照這些步驟,我相當積極的是你會發現你的問題的原因。

0

我不知道這是否可以幫助你,但如果你使用的Offset屬性,像它會不會更簡單

Set rng1 = Range(Range("A1").Offset(row_no,0), Range("EO").Offset(rowno,0)).Find(What:=somevar, LookIn:=xlValues,Lookat:=xlWhole) 
+0

我是得到錯誤1004 –