如果值存在于范围内,则粘贴公式

时间:2018-01-31 17:31:16

标签: excel vba excel-vba

如果第H列中存在值,我正在尝试创建一个将公式粘贴到第一列的宏。

这段代码是我遇到问题的地方。当我运行它时,它说Run-time error '1004': Method 'Range' of object '_Global' failed.我知道这不是完成我想做的最有效的方法。如果H列中存在值而不是不加选择地粘贴该值,则应仅粘贴该公式。有谁知道怎么做?

Range("I2:I" & LastRow).Formula = "=CONCATENATE(""Ck #"", G2,"" - "", H2)"

完整代码:

Sub prepn()

Columns("I:L").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("I1").Value = "Description"
Range("J1").Value = "Co"
Range("K1").Value = "Au"
Range("L1").Value = "Acct"
Range("M1").Value = "Comments"
Range("I2:I" & LastRow).Formula = "=CONCATENATE(""Ck #"", G2,"" - "", H2)"
End Sub

提前谢谢!

2 个答案:

答案 0 :(得分:1)

这就是我想你想要的。最后一行计算是针对第一列,即放置数据的行,如果不是只是更改字母

  Sub prepn()

    LastRow = Range("I" & Rows.Count).End(xlUp).Row
    Columns("I:L").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("I1").Value = "Description"
    Range("J1").Value = "Co"
    Range("K1").Value = "Au"
    Range("L1").Value = "Acct"
    Range("M1").Value = "Comments"
    Range("I2:I" & LastRow).Formula = "=CONCATENATE(" & Chr(34) & "Ck #" & Chr(34) & ", G2," & Chr(34) & " - " & Chr(34) & ", H2)"

End Sub

g2 = Here,H2 =也 你在小区里得到这个 = CONCATENATE(“Ck#”,G2,“ - ”,H2)

我打赌你不希望每个细胞都有G2和H2,但这是另一个问题。

答案 1 :(得分:0)

问题很可能是文中的引文。必须将它们写为ValuationTimeStamp.才能生成""。像这样:

"