2012-10-31 110 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 –