excelperfect Q:我想使用VBA代码基于单元格M14的值更新单元格批注,其中单元格M14中的值取决于其它单元格的值,单元格A1的批注接受单元格M14中的内容并根据M14中内容的变化而动态更新。同时,这也应该能够在受保护的工作表中正常运转。 如何编写VBA代码? A:首先,单元格M14中应该是一个公式,当其他单元格中的值修改时,M14中的值相应更新。在该工作表代码模块中,输入下面的代码: Private SubWorksheet_Change(ByVal Target As Range) Dim r As Range Set r = Intersect(Target,Range('M14').Precedents) If r Is Nothing Then Exit Sub On Error Resume Next With [A1] .Comment.Delete .Comment.Visible = False If [M14] <> 0 Then .AddComment .Comment.Text CStr([M14]) End If End With End Sub 在ThisWorkbook代码模块中,输入下面的代码: Private Sub Workbook_Open() Dim ws As Worksheet For Each ws In Worksheets 'UserInterfaceOnly:=True,允许代码修改数据. ws.Protect 'ken',UserInterfaceOnly:=True, DrawingObjects:=False, Contents:=True, Scenarios:=True Next ws End Sub 这样,当打开工作簿时,保护工作表。 注意,应该将与单元格M14相关的单元格的格式设置为“未锁定”,以便在工作表被保护时能够手动修改这些相关单元格。 注:今天的问题整理自ozgrid.com论坛,很新颖的用法,供有兴趣的朋友参考。 欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。
|
|
来自: hercules028 > 《VBA》