设置Range属性

时间:2012-10-31 10:39:30

标签: vba excel-vba excel

您好我已经编写了一个用于设置范围属性的代码,它正在运行一段时间。 以下示例是我的代码。

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没有显示

提前谢谢

2 个答案:

答案 0 :(得分: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

在调试模式下,在要调试的行之后有一个断点)。

如果您按照这些步骤操作,我会非常肯定您会找到问题的原因。

答案 1 :(得分:0)

我不确定这是否对您有所帮助,但如果您使用Offset属性就不会更简单,例如

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