返回首页
当前位置: 主页 > Excel教程 > Excel2007教程 >

Excel2007中不能录制的宏

时间:2012-09-13 15:43来源:Office教程学习网 www.office68.com编辑:麦田守望者

下面的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变量也将增加。
 当宏运行时,本例就可以了,但实际上它并不完美。它不够灵活,也不能处理任何错误。例如,如果工作簿结构是受保护的,试图添加一张新表将导致一个错误。

------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2003 excel技巧 excel教程 excel实例教程 excel2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣