我下载了一份报告。它有不同的 A 列长度。我想创建一个 VBA/宏,如果存在,它会将某个文本放入 M2 中任何相应 A 单元格中存在的数据。我不希望它无限期地将数据放入 M 列的每个单元格中,而只希望它在相应 A 单元格中有内容时才放入文本。
我尝试了这个但是没有用:
Private Sub Worksheet_Change()
If Worksheets("Sheet1").Range("A2").Value <> "" Then
Worksheets("Sheet1").Range("M2").Value = "Testing"
End If
End Sub
有人可以帮忙吗?
答案1
您尝试的第一个代码检查一个单元格 (A2) 并填充一个单元格 (M2)。如果您想检查更多单元格,请在宏中放置一个“For Each”循环。有关示例,请参阅如何使用 VBA 代码循环重复任务
如果你不想使用宏,你可以使用筛选仅显示 A 列中有值的行。
答案2
如果“对应的 A 单元格”确实指的是 A2,并且您的代码是正确的,但是在尝试运行它时出现错误,请尝试以下操作:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A2").Value <> "" Then
Range("M2").Value = "Testing"
End If
End Sub
我假设您将此代码放在您希望它运行的实际工作表中。
每次当“A2”中有内容时更改工作表时,都会在“M2”中打印“测试”。
如果你希望该部分也自动删除,你可以添加
Else
Range("M2").Value = ""
在如果中。