Excel2007中不能录制的宏

下面的VBA宏不能录制,因为它使用了必须手工输入的编程概念。该宏创建了一个活动工作表上的所有公式列表。列表保存在新的工作表中。
Sub ListFormulas()
Dim InputRange As Range
Dim OutputSheet As Worksheet
Dim OutputRow As Long
Dim Cell As Range
‘ Create a range objects
Set InputRange = ActiveSheet.UsedRange

‘ Add a new sheet
Set OutputSheet = Worksheets.Add

‘ Variable for the output row
OutputRow = 1

‘ Loop through the range
For Each Cell In InputRange
If Cell.HasFormula Then
OutputSheet.Cells(OutputRow, 1) = "’" & Cell.Address
OutputSheet.Cells(OutputRow, 2) = "’" & Cell.Formula
OutputRow = OutputRow + 1
End If
Next Cell
End Sub
  虽然这个宏看似很复杂,但把它拆开来看其实是很简单的。
  首先,宏创建了一个名为InputRange的对象变量。该变量对应于活动工作表上已使用的区域(因此不必检查每个单元格)。然后添加一张新的工作表并赋予工作表一个名为OutputSheet的对象变量。OutputRow变量设为1。该变量将在稍后增加。
 For-Next循环检查InputRange中的每个单元格。如果单元格有一个公式,接着单元格的地址和公式被写入OutputSheet中。OutputRow变量也将增加。
 当宏运行时,本例就可以了,但实际上它并不完美。它不够灵活,也不能处理任何错误。例如,如果工作簿结构是受保护的,试图添加一张新表将导致一个错误。

office办公软件入门基础教程 » Excel2007中不能录制的宏

本文链接:【Excel2007中不能录制的宏】https://www.officeapi.cn/8586.html

OFFICE,天天学一点,进步多一点

联系我们