我正在尝试对Excel VBA中的一列数据执行简单操作。如果列B中的单元格在'N'之前以字母开头,则单元格没有任何反应。如果单元格以字母'N'开头或以后(字母表中),则用“!!!!!”替换单元格内容。
以下是我的代码,它正确地将此代码应用于另一个列:
Range("C1", Range("C1").End(xlDown)).Value = "=IF(LEFT(A1,1)<""N"",B1,""!!!!!"")"
这很好用,并使C列包含正确的输出。但是,为了替换B列,我需要将C列转换为文字值,然后删除所有B列。
这些额外的步骤似乎有点不必要和麻烦。有没有办法直接在B列上应用公式,而无需将值分配给单独的列,然后销毁原始列B?
答案 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