这是我需要使偏移仅发生在可见单元格的代码:
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