【问题标题】:Excel VBA Conditional TextExcel VBA 条件文本
【发布时间】:2016-12-30 17:44:21
【问题描述】:

如果另一个单元格包含任何文本,在 VBA 中是否可以添加到单元格中?

例如:

F列中包含文本的FOREACH单元格

在 G 列写“已分配”

如果单元格 F 为空白,则跳过单元格

我知道有一个公式 ["=IFERROR(IF(SEARCH(""*"",RC[-1],6),""ASSIGNED""),"""")"],但我将此文件导入到的应用程序不接受包含公式的工作簿。

提前感谢您的帮助。

【问题讨论】:

  • 在 VBA 中只需循环遍历范围,例如(伪代码):For each cel in Range("F2:F1000") // if cel.value <> "" then cel.offset(0,1).Value = "ASSIGNED" // end if ?或者也许使用IsEmpty()?一个快速的想法 - 如果您的导入不接受公式,它接受宏?您总是可以使用您的公式,然后在其上复制/粘贴值,从而删除公式......如果公式已经不在桌面上,我非常怀疑它会接受 VBA。
  • 为什么不运行公式并将值复制并粘贴为值,range.value=range.value?
  • VBA 代码可以工作的原因是因为它是从我的 PERSONAL.xlsb 而不是导出的工作簿运行的。我将这些文件导入到的应用程序中,除了包含 VBA 或公式的工作簿。我将尝试处理公式中的值,但我认为在我的个人工作簿中的导出宏中内置一个 VBA 例程会更好。

标签: vba excel excel-2010


【解决方案1】:
Sub Test()

    Dim rng As Range

    Set rng = Workbooks("My Tracker").Sheets(4).Range("F1:F" & Cells(Rows.Count, "F").End(xlUp).Row)

    For Each Cell In rng
        If Len(Cell.Value) > 0 Then
            Cell.Offset(0, 1).Value = "ASSIGNED"
        End If
    Next

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多