【问题标题】:VBA Excel to fix a bug in a headingVBA Excel修复标题中的错误
【发布时间】:2017-03-16 16:45:14
【问题描述】:

我的标题部分有一个错误,我无法完全解决它。我目前正在为 Excel 文件编写宏。我们从我们使用的名为 Jama 的工具中导入项目(如标题、ID、名称、描述等)。

以前,Excel 会生成一个错误,例如当标题为 2.13 时,它会生成 2,13。我们使用.NumberFormat="@" 解决了它,但问题是它只适用于 Excel 文件中已经存在的项目。

例如,如果我尝试删除一些项目而不是按下按钮从 Jama 再次更新,则没有任何反应。作为提示,我的主管说我不需要 If 条件。我是 VBA 新手,所以非常需要您的帮助。

我有这几行代码:

    ' convert to text format
    If rCell.Offset(0, cHeading - 1).NumberFormat = "@" Then
        rCell.Offset(0, cHeading - 1) = oResponseDataLocation("sequence")
    End If

    'Coloring
    If rCell.Offset(0, cHeading - 1) <> sPastCellContant Then
        rCell.Offset(0, cHeading - 1).Interior.ColorIndex = ChangedColour
    End If

【问题讨论】:

  • 我们需要一个最小的、完整的示例和清晰的问题描述(输入、预期输出)。您对发布的代码的期望不是很清楚(jama?按钮?删除项目?)。

标签: vba excel


【解决方案1】:

此块不会转换为注释中所写的文本格式。如果单元格格式已经格式化为文本,它只会运行缩进行。

' convert to text format
If rCell.Offset(0, cHeading - 1).NumberFormat = "@" Then
    rCell.Offset(0, cHeading - 1) = oResponseDataLocation("sequence")
End If

我认为你的主管是对的,这就是你想要的:

' convert to text format
rCell.Offset(0, cHeading - 1).NumberFormat = "@"
rCell.Offset(0, cHeading - 1) = oResponseDataLocation("sequence")

【讨论】:

  • 非常感谢!他给出的提示就是解决方案本身:)
猜你喜欢
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多