0

我正在尝试对 Excel VBA 中的一列数据运行一个简单的操作。如果 B 列中的单元格以“N”之前的字母开头,则该单元格不会发生任何事情。如果单元格以字母“N”或更高的字母开头(在字母表中),则它将单元格内容替换为“!!!!!”。

这是我的代码,它正确地将其应用于另一列:

Range("C1", Range("C1").End(xlDown)).Value = "=IF(LEFT(A1,1)<""N"",B1,""!!!!!"")"

这工作正常,并使列 C 包含正确的输出。但是,为了替换 B 列,我需要将 C 列转换为文字值,然后删除所有 B 列。

这些额外的步骤似乎有点不必要和麻烦。有没有办法直接在 B 列上应用公式,而无需将值分配给单独的列然后破坏原始 B 列?

4

1 回答 1

2

将 myRng 设置为您需要的任何行数。它似乎不适用于完整的列。

Sub CaptainProgsSub()

Dim myRng As Range, cell As Range
Set myRng = Range("B1:B100")

For Each cell In myRng
    If Left(Range("B" & cell.row), 1) > "N" Then Range("B" & cell.row) = "!!!!!"
Next cell

End Sub
于 2012-10-24T11:15:21.533 回答