将一个简单的vba函数从绝对引用转换为相对引用

我有一个简单的vba函数,我想变成一个相对的。 我有3个variables,我通过比较他们,然后做一个while循环,我输出结果到一个单元格。 但我想这样做的列中的每个单元格(比较列中的所有单元格,做while循环,然后在另一列中的每个单元格中输出结果)但我不能做到这一点。 我search谷歌,但它只是告诉我如何转换一个Excel绝对公式相对不是一个VBA函数。 有人能帮我吗? 这里是我简单的代码:

Public Sub code() 'eshte nr i zerove te hequra me nje 1 perpara ne rastin tone 1000 'value = 1000 Dim z As Long z = Range("AS3").Value 'x eshte j3 - zerot nga mbrapa ne rastin tone 5 'value=5 Dim x As Long x = Range("AN3").Value 'y eshte karakteri i fundit nga codi i gjeneruar eshte 4 'value=4 Dim y As Long y = Range("AQ3").Value 'nese 5 eshte e ndryshme nga 1 If x <> 1 Then 'ateher 'nderkohe qe y(4) eshte i ndryshem nga x-1(4) If y = x - 1 Then Range("AT3").Value = 120 Else While y <> (x - 1) 'codi behet 0/1000 Range("AT3").Value = Range("H3").Value / z 'code = seri / z 'dhe me pas i shtojme nje 1 y = y + 1 Wend End If Else 'Range("AU3").Value = Range("K3").Value End If End Sub 

预先感谢您,祝您有美好的一天!

因为看起来你最终会想要改变多个单元格(根据你最后的注释行),我不认为用户定义的函数将适合你的需要。

我会添加一个variables

 dim rowNum as long 

然后你可以使用这个多行像这样

 rowNum=3 y = Range("AQ" & rowNum).Value 

否则你可以使用偏移function

范围(“A3”)。offset(1,0).value'偏移一列,所以从单元格“B3”