30个有用的Excel VBA代码(11~15)
11.将所有公式转换为值
如果工作表包含大量公式,并且要将这些公式转换为值,请使用此代码。
Sub ConvertToValues() With ActiveSheet.UsedRange .Value = .Value End With End Sub
此代码可以自动将使用公式的值转换为值
12.有公式的单元格锁定
当您有大量的计算并且不想意外的删除或更改时,您可能希望使用把有公式的单元格进行锁定。
下面是将锁定所有具有公式的单元格的代码,而所有其它单元格都未锁定。
Sub LockCellsWithFormulas() With ActiveSheet .Unprotect .Cells.Locked = False .Cells.SpecialCells(xlCellTypeFormulas).Locked = True .Protect AllowDeletingRows:=True End With End Sub
13.保护工作簿中所有的工作表
使用以下代码一次性保护工作簿中的所有工作表
Sub ProtectAllSheets() Dim ws As Worksheet For Each ws In Worksheets ws.Protect Next ws End Sub
此代码将逐个浏览所有工作表并对其进行保护。
如果要取消所有工作表的保护,可以使用 ws.unProtect
14.在所选内容中每隔一行后插入一行
如果要在选定区域中的每一行后插入空行,请使用此代码。
Sub InsertAlternateRows() Dim rng As Range Dim CountRow As Integer Dim i As Integer Set rng = Selection CountRow = rng.EntireRow.Count For i = 1 To CountRow ActiveCell.EntireRow.Insert ActiveCell.Offset(2, 0).Select Next i End Sub
同样,您可以修改此代码,以便在所选范围内的每一列之后插入一个空白列
15.自动在相邻单元格中插入日期和时间戳
当您想要跟踪活动时,可以使用时间戳。
使用此代码在创建条目或编辑现有内容时在相邻单元格中插入日期和时间戳。
Private Sub Worksheet_Change(ByVal Target As Range)On Error GoTo Handler If Target.Column = 1 And Target.Value <> '' Then Application.EnableEvents = False Target.Offset(0, 1) = Format(Now(), 'dd-mm-yyyy hh:mm:ss') Application.EnableEvents = True End If Handler: End Sub
请注意,您需要将此代码插入工作表代码窗口(而不是模块内代码窗口)。因为这是一个事件代码
赞 (0)