使用VBA在Excel中检测到未保存的更改时设置单元格的值

时间:2014-04-04 02:59:49

标签: excel vba excel-vba

我正在尝试检测整个工作簿中的更改(无论发生什么更改),以便在保存之前发生的任何更改都会导致特定单元格设置为特定值。目标是显示使用条件格式设置是否保存工作簿的可视指示器(非问题,已经设置了)。

我用来设置单元格值的代码是Sheets("Sheet1").Range("H1").Value = 1

我尝试使用Sub Worksheet_Change(ByVal Target As Range)检测更改,但我不确定如何设置范围。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

如果我正确地阅读了您的问题,您需要设置工作表,以便每次用户进行更改时,都会更新单元格中的值。

您已经完成了大部分工作,只需将以下子例程放在工作簿中即可。

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
    Sheets("Sheet1").Range("H1").Value = 1
End Sub

一旦将其与工作簿一起保存,该特定工作簿将执行您需要的功能。这是指向文档的链接 - http://msdn.microsoft.com/en-us/library/office/ff839775(v=office.15).aspx

答案 1 :(得分:0)

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 'Target is the variable name of the Range where the Change occured
 If thisworkbook.saved=false then 
     Sheets("Sheet1").Range("H1").Value = 1
  else
     Sheets("Sheet1").Range("H1").Value = 0 'or other value
 End if
End Sub