将修订单元格引用更改为dynamic引用
自从我编码VBA以来,已经过了很多年了,所以大部分的能力都在这里,但是非常的尘土飞扬。 我已经设法创build下面的代码。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = Range("Resource").Column Then Target.Offset(0, 1).Value = Date End If End Sub
这是非常有用的,因为我们希望影响第二列,当第一列发生变化时。 这是一个限制,所以我的问题是双重的。
- 如何引用目标行中的单元格,但名为“Hazaa”的列?
- 没有编码可以实现吗? (例如,当Ax改变时在Bx中设置date。)
1 – 这是一个例子:
Private Sub Worksheet_Change(ByVal Target As Range) MsgBox ActiveSheet.Cells(Target.Row, Range("Hazaa").Column).Value End Sub
2 – 如果我理解正确,你可以使用这个公式,而不需要VBA。
=IF(AX1=BX1,TEXT(NOW(),"dd/mm/yyyy"),"")
-
你只需要使用
Cells
或类似的东西:Cells(Target.Row, HazaaColumn)
HazaaColumn在这里是你需要在代码中用你的头文件进行扫描的“Hazaa”列的编号(我常常这样做是为了使我的程序更灵活,避免列更改时出现错误)
或者与范围:
Range(ColLet(HazaaColumn) & Target.Row)
使用自定义function:
Public Function ColLet(x As Integer) As String With ActiveSheet.Columns(x) ColLet = Left(.Address(False, False), InStr(.Address(False, False), ":") - 1) End With End Function
- 如果没有VBA, 您将无法检测到更改 ,因为您必须检测该事件,或者需要使用VBA更新参考表