Vba 设置范围属性
您好,我已经编写了一个设置range属性的代码,它已经正常工作了一段时间。 下面的例子是我的代码Vba 设置范围属性,vba,excel,Vba,Excel,您好,我已经编写了一个设置range属性的代码,它已经正常工作了一段时间。 下面的例子是我的代码 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”,
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,则也仅行_no=1,但rng1不显示任何内容
提前谢谢我不确定这是否能帮助您,但如果您使用Offset属性,例如
Set rng1 = Range(Range("A1").Offset(row_no,0), Range("EO").Offset(rowno,0)).Find(What:=somevar, LookIn:=xlValues,Lookat:=xlWhole)
欢迎使用调试 使用 检查您的范围是否正确设置,并检查所有行号是否大于0。
也使用
debug.print somevar
检查您的查找值。在这种特殊情况下,可以使用。在调试模式下选择以直观地检查您的范围 使用immediate window cmd可以获得类似的结果
print <variablename>
? <variablename> 'This is the same, represented by a question mark
打印
? '这是相同的,用问号表示
在调试模式下,在要调试的行之后有一个断点)
如果你遵循这些步骤,我很肯定你会找到问题的原因 测试时,完全识别范围对象。例如:
ThisWorkbook.Worksheets(“Sheet1”).Range(“A”和行号….
。以防万一。您确定A1和EO1之间确实存在somevar
?
print <variablename>
? <variablename> 'This is the same, represented by a question mark