Excel VBA:如何使此代码中的偏移量覆盖隐藏的列?

Excel VBA:如何使此代码中的偏移量覆盖隐藏的列?

这是我需要使偏移仅发生在可见单元格的代码:

Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1")) Is Nothing And (Range("A1") = "12345") Then
        Range("F3").Offset(0, 1) = Range("F3").Offset(0, 1).Value + Target.Value
    End If
End Sub

我是 VBA 新手,我真的不知道如何使偏移工作。如果有人能给我一个解决方案,那将解决我所有的问题。

代码应该像这样工作:

如果 A1 = 12345,则在 G3 中显示 B1 的总和(F3 的偏移量为 1)。

但如果 G3 被隐藏,则在 H3 中显示结果,如果 G3 和 H3 都被隐藏,则在 I3 中显示结果,依此类推。

您知道如何实现这一点吗?我愿意使用电子表格中的公式来获得相同的结果,但我不知道如何实现这一点。

答案1

这应该有效:

Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1")) Is Nothing And (Range("A1") = "12345") Then
        For i = 6 To Columns.Count
            If Cells(1, i).EntireColumn.Hidden = False Then
                Range("F3").Offset(0, i - 6) = Range("F3").Offset(0, i - 6).Value + Target.Value
                GoTo MyEnd
            End If
        Next i
    End If
MyEnd:
End Sub

相关内容