Excel 需要筛选数据中已更改单元格的单元格地址

Excel 需要筛选数据中已更改单元格的单元格地址,excel,vba,Excel,Vba,我一直在绞尽脑汁,谷歌和搜索都没有用,希望有人能帮上忙 我有一个项目,用户打开一个电子表格,从SQL server中提取数据。如果用户更改了三列中的一列中的数据,则该数据将更新回SQL server 到目前为止,我已经让这部分使用“工作表更改”事件,使用以下简单的测试代码,它返回列“A”中更改的单元格地址,最终更改的单元格地址将传递给例程,以使用更改的数据更新SQL server 到目前为止,我的测试代码是 Private Sub Worksheet_Change(ByVal Target As

我一直在绞尽脑汁,谷歌和搜索都没有用,希望有人能帮上忙

我有一个项目,用户打开一个电子表格,从SQL server中提取数据。如果用户更改了三列中的一列中的数据,则该数据将更新回SQL server

到目前为止,我已经让这部分使用“工作表更改”事件,使用以下简单的测试代码,它返回列“A”中更改的单元格地址,最终更改的单元格地址将传递给例程,以使用更改的数据更新SQL server

到目前为止,我的测试代码是

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Changed_Cell As Range
If Target.Column = 1 Then
    For Each Changed_Cell In Target
        MsgBox ("Changed_Cell : " & CStr(Changed_Cell.Address))
    Next Changed_Cell
End If
End Sub
虽然这是可行的,但我的问题是,我需要它来处理自动筛选的数据,因为用户喜欢使用自动筛选,并且被告知“没有自动筛选是不行的”

如果我一次只更改筛选范围中的一个单元格,则上述代码适用于自动筛选。如果我尝试更改筛选范围中的多个单元格,它将中断


因此,我需要的是,对于自动筛选列中的每个更改的单元格,为我提供每个更改单元格的单个单元格地址,而不是范围。(希望有意义)

将A列与目标中的潜在细胞分离

Private Sub Worksheet_Change(ByVal Target As Range)

    If not intersect(Target, Columns(1)) is nothing Then
        Dim Changed_Cell As Range
        For Each Changed_Cell In intersect(Target, Columns(1))
            MsgBox ("Changed_Cell : " & CStr(Changed_Cell.Address))
        Next Changed_Cell
    End If

End Sub

对目标中的每个C使用
C
定义为
Range
),这样您就可以在
目标中的多个单元格中循环,谢谢,但如果您查看我的代码,我就是这么做的。“Target”是一个范围,“Changed_Cell”是一个范围,因此我的代码行“Target中每个Changed_Cell”与您的建议相同。