我正在尝试将活动工作表复制到新工作簿中,然后保存该新工作簿并将其关闭。这是通过单击活动工作表中的表单(按钮)触发的。然后在保存之前在新工作簿中删除该按钮。
我在活动工作表中使用公式。我试图只复制值和任何其他格式。
新工作簿不显示值,而是只显示空单元格(也没有显示公式,这当然可以)。具体来说,使用间接公式复制单元格时似乎会出现问题;对于使用对原始工作簿中其他工作表的更简单引用的单元格来说,这似乎没有问题。
这是代码:
Sub CopyRemoveFormAndSave()
Dim RelativePath As String
Dim shp As Shape
Dim testStr As String
' Copy and Paste Active Sheet
ActiveSheet.Copy
With ActiveSheet.UsedRange
.Value = .Value
End With
' Remove forms
For Each shp In ActiveSheet.Shapes
If shp.Type = 8 Then
If shp.FormControlType = 0 Then
testStr = ""
On Error Resume Next
testStr = shp.TopLeftCell.Address
On Error GoTo 0
If testStr <> "" Then shp.Delete
Else
shp.Delete
End If
End If
Next shp
' Save New Workbook and Close
Application.DisplayAlerts = False
RelativePath = ThisWorkbook.Path & "\" & ActiveSheet.Name & "_Reporting_" & Format(Now, "yymmdd") & ".xlsx"
ActiveWorkbook.SaveAs Filename:=RelativePath
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub