VBAmacros如果单元格包含值,则在其他单元格上input特定的文本

我有一个Excel文档,其中有很多的信息和统计信息,我想弄清楚如何解决以下问题:如果E列E5中的单元格包含“N / A”文本(没有引号),我想自动input“N / A”文本在同一行中的几个特定的​​单元格

添加了一个图像作为参考 图片 。 任何帮助将不胜感激,谢谢!

最新的编辑:我附上的Excel副本,也许这将是更多的帮助,对我来说,它只是不会工作…这是如此令人沮丧… Excel文件

将以下代码粘贴到要执行此操作的工作表的代码表中。

 Private Sub Worksheet_Change(ByVal Target As Range) Dim C As Long If Not Application.Intersect(Target, Range("E5:E70")) Is Nothing Then SetApplication False With Target If StrComp(Trim(.Value), "N/A", vbTextCompare) = 0 Then ' recognises "n/a" as "N/A" and corrects entry For C = Columns("E").Column To Columns("AL").Column Cells(.Row, C).Value = "N/A" Next C End If End With SetApplication True End If End Sub Private Sub SetApplication(ByVal AppMode As Boolean) With Application .EnableEvents = AppMode .ScreenUpdating = AppMode End With End Sub 

我假定(基于图片),你要粘贴N / A这样:F – 粘贴,G – 不粘贴,H – 粘贴 – 并重复这三个进一步:粘贴,不粘贴,粘贴,粘贴,不要粘贴,粘贴等

所以这段代码根据这条规则工作。 你只需要指定最后一列而不是Column.Count - 2 – 这个位表示只是该程序应该填充到表单中的最后一列。

 Sub FillNAs() Application.EnableEvents = False Application.ScreenUpdating = False Dim i, j As Long For i = 5 To 70 If UCase(Cells(i, 5).Value) = "N/A" Then j = 6 Do While j < Columns.Count - 2 Cells(i, j).Value = "N/A" Cells(i, j + 2).Value = "N/A" j = j + 3 Loop End If Next i Application.EnableEvents = True Application.ScreenUpdating = True End Sub 

尝试

 Sub Demo() Dim ws As Worksheet Dim cel As Range Set ws = ThisWorkbook.Sheets("Sheet1") 'change Sheet1 to your data sheet For Each cel In ws.Range("E5:E70") If CVErr(cel.Value) = CVErr(xlErrNA) Then ws.Range("F" & cel.Row & ":I" & cel.Row) = CVErr(xlErrNA) 'mention desired range instead of (F:I) End If Next cel End Sub 

在这里输入图像说明