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

时间:2014-09-05 16:38:48

标签: excel vba excel-vba absolute relative

我有一个简单的vba函数,我想将其转换为相对的函数。我有3个变量,我通过if比较然后做一个while循环,然后将结果输出到一个单元格。但是我想对列中的每个单元格进行处理(比较列中的所有单元格,执行while循环,然后在另一列中的每个单元格中输出结果) 但我无法做到这一点。我搜索过谷歌,但它只显示如何将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

提前感谢您,祝您有个美好的一天!

1 个答案:

答案 0 :(得分:1)

因为看起来你最终想要更改多个单元格(根据你最后注释掉的行),我不认为用户定义的功能符合你的需要。

我会添加一个变量

dim rowNum as long

然后你可以将它用于像这样的多行

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

否则你可以使用偏移函数

范围(&#34; A3&#34;)。偏移量(1,0).value&#39;这个偏移量由一列产生,因此从细胞中获取值&#34; B3&#34;