Excel VBA:使用相同单元格的内容执行覆盖单元格内容的功能

时间:2012-10-24 10:56:00

标签: excel-vba vba excel

我正在尝试对Excel VBA中的一列数据执行简单操作。如果列B中的单元格在'N'之前以字母开头,则单元格没有任何反应。如果单元格以字母'N'开头或以后(字母表中),则用“!!!!!”替换单元格内容。

以下是我的代码,它正确地将此代码应用于另一个列:

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

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

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

1 个答案:

答案 0 :(得分: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