【发布时间】:2020-06-19 10:29:24
【问题描述】:
我向 Stack Overflow 发布了一个关于创建 Excel 宏以在上一列中添加/减去列中的值,然后清除当前列的问题。
该代码在 office 2007 中工作了多年,但在 office 365 (2016/2019) 中不再工作。
如果 F1 的值为 100.00 英镑,我在 G1 中输入 -50,F1 变为 50.00 英镑,而 G1 为空。 F 列中的每个单元格都会更改输入到 G 列中的行中的数量。
在 Excel 的 Office 365 版本中,此宏执行一次,然后在我关闭并重新打开文档之前不会再次运行。导致这种情况的宏工作方式是否发生了变化?
编辑: 这是代码(附在表 1 上),根据我之前的问题稍作修改,用于 G 列。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FirstNum As Currency 'Long is for number currency should help keep format
Dim SecNum As Currency
If Target.Column = 7 Then 'Only Runs if Cel l being changed is in column C, Might need to be Columns
FirstNum = Target.Offset(0, -1).Value ' Value in Column B
SecNum = Target.Value ' Value being typed in C
Target.Offset(0, -1).Value = FirstNum + SecNum ' Makes Cell B equal to difference of previous value and value typed in C
'MsgBox ("Difference Found") ' Just to display code worked Remove when confirm code works
Target.Clear ' Clears Value you typed
End If
End Sub
【问题讨论】:
-
粘贴您的实际代码而不是答案的链接,因为您所描述的内容不适合答案(只有 col C 触发器更改),我想知道您是否更改了某些内容或有其他宏在游戏中关闭工作表更改事件