By 杰夫 18年2022月XNUMX日,星期日
张贴在 Kutools for Excel
回复 2
0
观点 4.7
投票 0
我已经复制了用于将数据从单元格复制到同一行不同列的 VBA 并对其进行了更改,以便我可以更改 F 列中的单元格并将值保存到 E 列,但是当我尝试它时没有任何反应。 有人可以告诉我我做错了什么吗? 我还想在进行更改时在 G 列中放置一个日期戳。

当我更改列 I 中的单元格以将其保存到列 H 和列 J 中更改的日期戳时,我希望也能够做同样的事情。

任何帮助将不胜感激。


将 xRg 调暗为范围
将 xChangeRg 调暗为范围
将 xDependRg 调暗为范围
将 xDic 调暗为新词典
私人子Worksheet_Change(按目标的ByVal目标)
暗淡我只要
将 xCell 调暗为范围
将 xDCell 调暗为范围
将 xHeader 调暗为字符串
将 xCommText 调暗为字符串
出错时继续下一步
应用程序.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "上一个值:"
x = xDic.Keys
对于 I = 0 到 UBound(xDic.Keys)
设置 xCell = Range(xDic.Keys(I))
设置 xDCell = Cells(xCell.Row, 5)
xDCell.Value = ""
xDCell.Value = xDic.Items(I)
下一页
Application.EnableEvents = True
Application.ScreenUpdating =真
END SUB
Private Sub Worksheet_SelectionChange(作为范围的ByVal目标)
昏暗的我,J一样长
将 xRgArea 调暗为范围
出错时转到 Label1
如果 Target.Count > 1 则退出 Sub
Application.EnableEvents = False
设置 xDependRg = Target.Dependents
如果 xDependRg 为空则转到 Label1
如果不是 xDependRg 什么都不是那么
设置 xDependRg = Intersect(xDependRg, Range("F:F"))
结束如果
标签1:
设置 xRg = 相交(目标,范围(“F:F”))
If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) 那么
设置 xChangeRg = Union(xRg, xDependRg)
ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) 然后
设置 xChangeRg = xDependRg
ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) 然后
设置 xChangeRg = xRg
其他
Application.EnableEvents = True
退出小组
结束如果
xDic.RemoveAll
对于 I = 1 至 xChangeRg.Areas.Count
设置 xRgArea = xChangeRg.Areas(I)
对于 J = 1 至 xRgArea.Count
xDic.Add xRgArea(J).地址,xRgArea(J).公式
下一页
下一页
设置 xChangeRg = 无
设置 xRg = 无
设置 xDependRg = 无
Application.EnableEvents = True
END SUB
更新

VBA 正在运行! 请看下面的代码。 我只需要修改它的帮助,这样当我更改列 I 中的单元格时,它会将值保存到列 H。


将 xRg 调暗为范围
将 xChangeRg 调暗为范围
将 xDependRg 调暗为范围
将 xDic 调暗为新词典
私人子Worksheet_Change(按目标的ByVal目标)
暗淡我只要
将 xCell 调暗为范围
将 xDCell 调暗为范围
将 xHeader 调暗为字符串
将 xCommText 调暗为字符串
出错时继续下一步
应用程序.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "上一个值:"
x = xDic.Keys
对于 I = 0 到 UBound(xDic.Keys)
设置 xCell = Range(xDic.Keys(I))
设置 xDCell = Cells(xCell.Row, 5)
xDCell.Value = ""
xDCell.Value = xDic.Items(I)
下一页

如果Target.Column = 6然后
Application.EnableEvents = False
单元格(Target.Row,7).Value = Date
Application.EnableEvents = True
结束如果

如果Target.Column = 9然后
Application.EnableEvents = False
单元格(Target.Row,10).Value = Date
Application.EnableEvents = True
结束如果
Application.EnableEvents = True
END SUB
Private Sub Worksheet_SelectionChange(作为范围的ByVal目标)
昏暗的我,J一样长
将 xRgArea 调暗为范围
出错时转到 Label1
如果 Target.Count > 1 则退出 Sub
Application.EnableEvents = False
设置 xDependRg = Target.Dependents
如果 xDependRg 为空则转到 Label1
如果不是 xDependRg 什么都不是那么
设置 xDependRg = Intersect(xDependRg, Range("F:F"))
结束如果
标签1:
设置 xRg = 相交(目标,范围(“F:F”))
If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) 那么
设置 xChangeRg = Union(xRg, xDependRg)
ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) 然后
设置 xChangeRg = xDependRg
ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) 然后
设置 xChangeRg = xRg
其他
Application.EnableEvents = True
退出小组
结束如果
xDic.RemoveAll
对于 I = 1 至 xChangeRg.Areas.Count
设置 xRgArea = xChangeRg.Areas(I)
对于 J = 1 至 xRgArea.Count
xDic.Add xRgArea(J).地址,xRgArea(J).公式
下一页
下一页
设置 xChangeRg = 无
设置 xRg = 无
设置 xDependRg = 无

Application.EnableEvents = True
END SUB
·
1年前
·
0喜欢
·
0投票
·
0条评论
·
澄清一下,这是对它已经在做的事情的补充。 我希望能够跟踪 F 列和 I 列中所做的更改。很抱歉造成混淆。
·
1年前
·
0喜欢
·
0投票
·
0条评论
·
查看全文