【发布时间】: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中连接字符串时使用“&”而不是“+”
-
谢谢!这是很大的帮助,我很高兴地说潜艇工作正常!