【问题标题】:How do I append a cell with a formula value?如何附加带有公式值的单元格?
【发布时间】:2012-03-10 14:28:33
【问题描述】:

我正在尝试使用一个小宏来格式化一些数据,以便我可以制作价格表。当我将信息放入 excel 时,它工作正常,但有些注释会放到下一行。这应该获取单元格内容并将其附加到其上方的单元格。

Sub Macro1()
    For i = 8 To 100000
        If Left(ActiveSheet.Cells(i + 1, 1).Value, 2) = "AC" Or ActiveSheet.Cells(i + 1, 1).Value  = vbNullString Then
        Else
            If Left(ActiveSheet.Cells(i + 1, 1).Value, 4) = "Page" Then
                ActiveSheet.Rows(i + 1).Delete shift:=xlUp
            Else
                Dim tempString As Variant
                tempString = ActiveSheet.Cells(i + 1, 1).Value
                ActiveSheet.Cells(i, 1).Value = ActiveSheet.Cells(i, 1).Value + " " + tempString
                ActiveSheet.Rows(i + 1).Delete shift:=xlUp
                i = i - 1
            End If
        End If
    Next
End Sub

它工作得很好,直到我遇到一个单元格值:

=- 4-7

(这不是一个真正的公式,它只是看起来像一个) 这给了我一个类型不匹配的错误。我应该使用另一种方式来指定单元格内容吗?此外,可能有更好的方法来指定范围,我真的只想一直向下 A 列。任何帮助表示赞赏。

【问题讨论】:

  • 我无法复制您的错误?您可以在某处发布样本吗?我要制作的模组:1)我会在代码开头使用自动过滤器删除“页面”单元格 2)设置 A 列中的范围,从最后一个单元格向上查找,而不是硬编码 100000 3)删除自下而上的意思你可以删除你的i=i-1 修复
  • +1) 所有 3 个优点!即使我会推荐。这是第四点:在Excel中连接字符串时使用“&”而不是“+”
  • 谢谢!这是很大的帮助,我很高兴地说潜艇工作正常!

标签: excel vba


【解决方案1】:

只需使用.Formula 而不是.Value

这将返回一个常量的字符串,如果它是一个常量,或者是excel认为它是的“公式”的字符串,视情况而定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    相关资源
    最近更新 更多