当C列单元格为空时,列G中的#VALUE错误

时间:2014-01-04 05:53:22

标签: excel excel-vba vba

您好我有以下公式来操纵C列中的字符串并在G列中返回该值:

Range("G1").Select
Range("G:G").Value = "=MID(C1,18,LEN(C1)-22)"

但现在我有一个问题。上面的公式无限地填充G列中的单元格,当C列中的单元格为空时返回#VALUE错误。

如果C列中的单元格有值,是否有办法限制公式中的Range("G:G").Value填充G列?

谢谢!

1 个答案:

答案 0 :(得分:1)

像这样的东西是相当于

  • 识别列C
  • 的已使用部分
  • 将公式放在G
  • 的相应=IF(LEN(C1)>22,MID(C1,18,LEN(C1)-22),"")列中
  • 使用""
  • 删除公式(以及任何.Value

代码

   Sub G_Spot()
    Dim rng1 As Range
    Set rng1 = Range([c1], Cells(Rows.Count, "C").End(xlUp))
    With rng1.Offset(0, 4)
            .FormulaR1C1 = "=IF(LEN(RC[-4])>22,MID(RC[-4],18,LEN(RC[-4])-22),"""")"
            .Value = .Value
    End With
    End Sub