我已经在excel中创建了VBA宏。它的工作方式并不完全符合我的要求。
我希望宏在不为空的B2:B160范围内的每个单元格中在C1:C160范围内的每个单元格中插入一个公式
我的代码如下:
Sub Check()
Dim dat As Variant
Dim rng As Range
Dim i As Long
Set rng = Range("B2:B160")
dat = rng
For i = LBound(dat, 1) To UBound(dat, 1)
If dat(i, 1) <> "" Then
rng(i, 2).Formula = "=RIGHT(B2, LEN(B2)-12)"
End If
Next
End Sub
问题是它在每个单元格中插入了相同的公式。该公式不是动态的。如何使它动态化,以便单元格C3具有公式:“ = RIGHT(B3,LEN(B3)-12),依此类推,以此类推。
任何提示都会帮助您!
使用变量作为这样的行来构建字符串
rng(i, 2).Formula = "=RIGHT(B" & i & ", LEN(B" & i & ")-12)"
可能不完全是您所需要的,但是您看到了字符串串联的工作方式,对吗?