Excel VBA更新记录的子集

Excel VBA更新记录的子集,excel,vba,Excel,Vba,当colmun D填充条目时,我使用以下宏在工作表目标记录的M 9列中放置一个w Dim lastrow As Integer lastrow = Range("D" & Rows.Count).End(xlUp).row 'If Status is "Filled" place a "w" in Results 'Range("D2:D" & lastrow) Is the Target it defines the column D as the target ar

当colmun D填充条目时,我使用以下宏在工作表目标记录的M 9列中放置一个w

    Dim lastrow As Integer
lastrow = Range("D" & Rows.Count).End(xlUp).row

'If Status is "Filled" place a "w" in Results
'Range("D2:D" & lastrow) Is the Target it defines the column D as the target area
If Not Intersect(Target, Range("D2:D" & lastrow)) Is Nothing Then
    If Target <> "Filled" Then
        Target.Offset(, 9) = vbNullString
        Else: Target.Offset(, 9) = "w"
    End If
 End If
我想在所有记录的M列中输入一个w,这些记录在列表目标行的K列中有相同的条目,当这些记录中的任何一个 获取填入其中一条记录的第D列的条目。
我似乎没有你的答案。你的问题有点模棱两可,但有一个想法:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range, lastRow As Long, tmpVal As Variant

lastRow = Me.Range("D" & Rows.Count).End(xlUp).Row
If Not Intersect(Target, Me.Range("D2:D" & lastRow)) Is Nothing Then
    If Target.Value = "Filled" Then
        tmpVal = Target.Offset(0, 7).Value
        If Not Len(Trim(tmpVal)) = 0 Then
            For Each cell In Me.Range("K2:K" & lastRow)
                If cell.Value = tmpVal Then cell.Offset(0, 2).Value = "w"
            Next cell
        End If
    End If
End If

End Sub

这是工作表更改…?是的,这是工作表更改。谢谢您的帮助。没有更新,我使用了最初发布的代码中的最后一行,这与您的代码一致吗?我会发布一张之前和之后的图片,但不知道如何在这里做到这一点。当目标列的D列输入时,列表中的所有记录在J列中的条目与目标列在J列中的条目相同。因此,如果目标列在J列中有一个c,当在D列中输入时,在J列中有一个c的所有记录在M列中都会得到一个w。我稍微更改了代码。正如您在原始帖子中提到的,您的代码是工作表更改事件的一部分。我给你的快速代码检查了哪个单元格被更改了。如果是D列中的单元格,则检查该条目是否已填充,然后检查相应的J单元格中是否有c;如果满足这些条件,相应M单元中的值将更改为w。例如:如果您在单元格D4中输入了关键字,而单元格J4中包含了一个c,则M4中的值将更改为w,否则将设置为nothing。如果我更改和Target.Offset,6到和Target.Offset,7,则只有目标记录列M将更新为w,否则不会更新任何内容。但是我试图得到所有在K列中有一个c要更新到M列中的w的记录。c只是一个示例条目,它可以是任何字母,取决于所选的目标字母。谢谢,我在原帖上贴了一张前/后照片。我希望我能很好地理解你的要求。每次在D列的一个单元格中填充一个条目时,您都希望检查K列相应范围内的所有值,并且对于K列中的每个单元格(其中值为a),将相应M单元格的值更改为w。新的编辑应该做到这一点。我继续假设您希望在工作表的更改事件中使用代码。