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

先感谢您

4

2 回答 2

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

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

如果您遵循这些步骤,我非常肯定您会找到问题的原因。

于 2012-10-31T15:01:56.170 回答
0

我不确定这是否可以帮助您,但如果您使用 Offset 属性,它不会更简单,比如

   Set rng1 = Range(Range("A1").Offset(row_no,0), Range("EO").Offset(rowno,0)).Find(What:=somevar, LookIn:=xlValues,Lookat:=xlWhole)
于 2012-10-31T11:55:46.337 回答