如果B列不为空,则在C列中插入公式

问题描述 投票:0回答:1

我已经在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),依此类推,以此类推。

任何提示都会帮助您!

excel vba excel-formula
1个回答
0
投票

使用变量作为这样的行来构建字符串

rng(i, 2).Formula = "=RIGHT(B" & i & ", LEN(B" & i & ")-12)"

可能不完全是您所需要的,但是您看到了字符串串联的工作方式,对吗?

© www.soinside.com 2019 - 2024. All rights reserved.