根据列 Header 和目标行的交集动态设置值
Set Value Dynamically Based on Column Header and Intersection of Target Row
这个站点上的人非常乐于助人,我希望有人能帮我弄清楚如何使用动态列 headers 在我的代码中赋值。我有一个子设置为双击目标之前,所有目标都在 A 列中。现在我可以正常工作,使用偏移方法分配值。我需要从目标行的单元格中提取数据,只要列不移动,就很好。但是,用户现在正在添加列,但我需要的列的 headers 不会更改。我现在需要将其更改为基于目标行和基于其 header 的特定列的交集的动态查找。我可以设置值来找到我想要的列,但无法根据目标行正确提取数据。我认为 Intersect 属性 会起作用,但它似乎不起作用,因为它是基于在一个范围内找到目标本身。我需要找到一个相对于目标的单元格,与基于 header 的列相交。该值将在 sub 的其他地方使用。我错过了哪一步?
这段代码在下面,你可以看到我现在有一个混合体,一些基于列号直接向上偏移,另一个我尝试使用指定的列名 nameCol 和 nameCol1 .偏移方法有效,但是当我尝试使用 headers 来定义在目标行上查找的位置时,它不起作用。谢谢。
Set nameCol = Range("A1:Z1").Find("Last")
Set nameCol1 = Range("A1:Z1").Find("First")
Set nameCol2 = Range("A1:Z1").Find("Name")
Set nameCol3 = Range("A1:Z1").Find("Date")
'Check active column is column 1 (Where you want the macro to be called from)
If Target.Column = 1 Then
With Target
sName = .Value
sAction = .Offset(0, 24).Value + 365
Set foundCell = .Offset(0, nameCol.Column)
Set foundcell1 = .Offset(0, nameCol1.Column)
Set foundcell3 = .Offset(0, 36)
Set foundcell4 = .Offset(0, 35)
sReason = .Offset(0, 6).Value
foundcell2 = .Offset(0, 6)
这就是下面给出的答案:
设置 FoundCell = Cells(Target.Row,namecol.Column) --Scott Craner
这个站点上的人非常乐于助人,我希望有人能帮我弄清楚如何使用动态列 headers 在我的代码中赋值。我有一个子设置为双击目标之前,所有目标都在 A 列中。现在我可以正常工作,使用偏移方法分配值。我需要从目标行的单元格中提取数据,只要列不移动,就很好。但是,用户现在正在添加列,但我需要的列的 headers 不会更改。我现在需要将其更改为基于目标行和基于其 header 的特定列的交集的动态查找。我可以设置值来找到我想要的列,但无法根据目标行正确提取数据。我认为 Intersect 属性 会起作用,但它似乎不起作用,因为它是基于在一个范围内找到目标本身。我需要找到一个相对于目标的单元格,与基于 header 的列相交。该值将在 sub 的其他地方使用。我错过了哪一步?
这段代码在下面,你可以看到我现在有一个混合体,一些基于列号直接向上偏移,另一个我尝试使用指定的列名 nameCol 和 nameCol1 .偏移方法有效,但是当我尝试使用 headers 来定义在目标行上查找的位置时,它不起作用。谢谢。
Set nameCol = Range("A1:Z1").Find("Last")
Set nameCol1 = Range("A1:Z1").Find("First")
Set nameCol2 = Range("A1:Z1").Find("Name")
Set nameCol3 = Range("A1:Z1").Find("Date")
'Check active column is column 1 (Where you want the macro to be called from)
If Target.Column = 1 Then
With Target
sName = .Value
sAction = .Offset(0, 24).Value + 365
Set foundCell = .Offset(0, nameCol.Column)
Set foundcell1 = .Offset(0, nameCol1.Column)
Set foundcell3 = .Offset(0, 36)
Set foundcell4 = .Offset(0, 35)
sReason = .Offset(0, 6).Value
foundcell2 = .Offset(0, 6)
这就是下面给出的答案: 设置 FoundCell = Cells(Target.Row,namecol.Column) --Scott Craner