|
本帖最后由 乐乐2006201506 于 2016-6-14 12:07 编辑
1.怎样将下面代码(提取带公式的单元格)提出来的公式写入代码(而不是放入新的工作表单元格中,即不用创建新工作表,而是提取后存入代码中);
2.然后通过提取出来的含公式代码实现还原(而不是现在的先创建一个新工作表,将提取的公式赋值到特定单元格,然后间接实现公式还原)。
谢谢!
Sub 提取带公式的单元格()
Dim FormulaCells As Range, Cell As Range
Dim FormulaSheet As Worksheet
Dim Row As Integer
'创建Range对象
On Error Resume Next
Set FormulaCells = Range("A1").SpecialCells(xlFormulas, 23)
'没有找到公式
If FormulaCells Is Nothing Then
MsgBox "当前工作表中没有公式!"
Exit Sub
End If
'增加一个新工作表
Application.ScreenUpdating = False
Set FormulaSheet = ActiveWorkbook.Worksheets.Add
FormulaSheet.Name = "“" & FormulaCells.Parent.Name & "”表中的公式"
'列标题
With FormulaSheet
Range("A1") = "公式所在单元格"
Range("B1") = "公式"
Range("C1") = "值"
Range("A1:C1").Font.Bold = True
End With
'读取公式,同时在状态栏中显示进度。
Row = 2
For Each Cell In FormulaCells
Application.StatusBar = Format((Row - 1) / FormulaCells.Count, "0%")
With FormulaSheet
Cells(Row, 1) = Cell.Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
Cells(Row, 2) = " " & Cell.Formula
Cells(Row, 3) = Cell.Value
Row = Row + 1
End With
Next Cell
'调整列宽
FormulaSheet.Columns("A:C").AutoFit
Application.StatusBar = False
End Sub
- Sub 公式还原()
- Dim n&
- With Sheet2
- On Error Resume Next
- n = .Cells(.Rows.Count, 1).End(xlUp).Row
- For i = 2 To n
- Sheet1.Range(.Range("A" & i).Value).Formula = Mid(.Range("B" & i).Value, 2, 300)
- Next
- End With
- End Sub
读取至文本文件,然后从文本文件将公式还原到指定工作表中,最新代码如下:
由于是用FSO来操作,所以工作簿请需引用对应DLL,如下图:
(, 下载次数: 93)
|
|