当用户输入特定列范围内的数据时,VBA代码能否更新Excel工作表列中的单元格?

当用户输入特定列范围内的数据时,VBA代码能否更新Excel工作表列中的单元格?,excel,vba,offset,worksheet,automatic-updates,Excel,Vba,Offset,Worksheet,Automatic Updates,我有一个Excel工作表,它有12列宽,许多行深。我正在尝试编写一个工作表\u Change Sub,它将使用Now函数使工作表自动将当前日期/时间输入到a-K列或1到11列单元格中数据更改的同一行的L(或12)列 到目前为止,我已经尝试使用Offset函数来实现这一点,但我只能在进行相对更新时获得成功,而不能进行部分绝对更新。我尝试使用Choose函数来替换columnshift的offset函数变量,该变量基于用户的目标单元格,但我也无法让它工作。现在我正在尝试使用此选项,但没有效果: Su

我有一个Excel工作表,它有12列宽,许多行深。我正在尝试编写一个工作表\u Change Sub,它将使用Now函数使工作表自动将当前日期/时间输入到a-K列或1到11列单元格中数据更改的同一行的L(或12)列

到目前为止,我已经尝试使用Offset函数来实现这一点,但我只能在进行相对更新时获得成功,而不能进行部分绝对更新。我尝试使用Choose函数来替换columnshift的offset函数变量,该变量基于用户的目标单元格,但我也无法让它工作。现在我正在尝试使用此选项,但没有效果:

Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range

Offst As Integer
End Type
Set WorkRng = Range("A:K")
If Not Application.Intersect(WorkRng, Range(Target.AddressLocal)) _
Is Nothing Then
If Target.Column = 1 Then Offst = 11
ElseIf Target.Column = 2 Then Offst = 10
ElseIf Target.Column = 3 Then Offst = 9
ElseIf Target.Column = 4 Then Offst = 8
ElseIf Target.Column = 5 Then Offst = 7
ElseIf Target.Column = 6 Then Offst = 6
ElseIf Target.Column = 7 Then Offst = 5
ElseIf Target.Column = 8 Then Offst = 4
ElseIf Target.Column = 9 Then Offst = 3
ElseIf Target.Column = 10 Then Offst = 2
ElseIf Target.Column = 11 Then Offst = 1
End If
    With Offst
            Target.Offset(0, Offst).Value = Now
            Target.Offset(0, Offst).NumberFormat = "dd-mmm-yyyy AM/PM"
    End With
End Sub
我对VBA非常基础,我没有多少时间。我在互联网上搜索过很多次,我想我很擅长使用搜索引擎,但是我找不到与我的情况直接相关的东西。我只能找到人们更新一列数据的例子,而不是一个范围


非常感谢您的帮助!谢谢你抽出时间

不需要偏移量。您可以硬编码
L
,并使用
Intersect
Target.EntireRow
更新L列中的相应行

简化后,整个代码可以是:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Me.Range("A:K"), Target) Is Nothing Then Exit Sub

    Intersect(Me.Columns("L"), Target.EntireRow).Value = Now
    Intersect(Me.Columns("L"), Target.EntireRow).NumberFormat = "dd-mmm-yyyy AM/PM"
End Sub

对于带有的也没有nee,
offst=12目标。列
将消除所有的if's,它是
结束类型
的一部分。正如@BigBen所说,有一种类型,offst是其中的一部分,由于它也没有
Dim
对不起,伙计们,我在试图一点一点地修改代码时,代码中出现了不同的错误。它把我带进了一个兔子洞,这个洞可能比我开始的地方更远。执行此代码时收到的当前错误为编译错误:语句在类型块之外无效。所以我想我必须为我的变量构造一个类型块,这就是我来到这里的原因@BigBenI说我需要一个声明@Nathan_Sav Big Nooby在这里。非常感谢你,我花了一整天的时间来做你在5行中所做的事情。