excelperfect Q:我想使用VBA代碼基于單元格M14的值更新單元格批注,其中單元格M14中的值取決于其它單元格的值,單元格A1的批注接受單元格M14中的內(nèi)容并根據(jù)M14中內(nèi)容的變化而動態(tài)更新。同時,這也應(yīng)該能夠在受保護的工作表中正常運轉(zhuǎn)。 如何編寫VBA代碼? A:首先,單元格M14中應(yīng)該是一個公式,當(dāng)其他單元格中的值修改時,M14中的值相應(yīng)更新。在該工作表代碼模塊中,輸入下面的代碼: 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,允許代碼修改數(shù)據(jù). ws.Protect 'ken',UserInterfaceOnly:=True, DrawingObjects:=False, Contents:=True, Scenarios:=True Next ws End Sub 這樣,當(dāng)打開工作簿時,保護工作表。 注意,應(yīng)該將與單元格M14相關(guān)的單元格的格式設(shè)置為“未鎖定”,以便在工作表被保護時能夠手動修改這些相關(guān)單元格。 注:今天的問題整理自ozgrid.com論壇,很新穎的用法,供有興趣的朋友參考。 歡迎到知識星球:完美Excel社群,進(jìn)行技術(shù)交流和提問,獲取更多電子資料。
|
|
來自: hercules028 > 《VBA》