将工作表保存到新的工作簿中,但使用值而不是引用公式

所以我正在尝试创build一个工作簿,它使用初始数据的工作表中的多个引用自动填充不同工作表中的单元格以生成表单(预格式化的工作表)。 对于其中一个工作表,我需要将其保存在独立的networking驱动器上,就像它自己的.xlsx工作簿一样。 到目前为止,我开发的代码创build了新的工作簿,但单元格仍包含引用原始工作簿的原始公式。 有没有办法,当保存到新的工作簿,将单元格转换为值? 这是我已经到位的子。 TIA

Private Sub SaveBidTab1_Click() ' Saves the BidTab in the Current Year's Bid Tabs Folder in ' Dave's Snapserver Construction Files Dim BTFName As String 'this will be the name of the new file name saved in the Bid Tabs Folder Dim BTFfolder As String 'This is the folder to save the form into Dim BTFDate As String 'This is the date to choose which year's folder to use Dim ProjectShortName As String 'This is the short name for the project for the file name Dim NewBook As Workbook ' This is temp workbook that the new bid tab sheet will be saved as If Worksheets("BidTab").Range("G12") = "" Then ans = MsgBox("This form is not ready to be saved", vbOKOnly, "Bid Tabs") Select Case ans Case vbOK Exit Sub End Select End If 'Requests user to enter in short name for project Msg = "Enter Project Short Name" ProjectShortName = InputBox(Msg, "Save As") ' TRIAL is added here until project is compelted. BTFName = "TRIAL " & Worksheets("Initial Entry").Range("B5") & " " & ProjectShortName & _ " " & "Bid Tab Results" & " " & Worksheets("BidTab").Range("L5") ' Add in a cancle option to this msgbox MsgBox BTFName BTFDate = Year(Now()) BTFfolder = "M:\DotserverD\Daves Snapserver Files Construction Files\Bid Tabs\" & BTFDate _ & "\County" Debug.Print BTFfolder Set NewBook = Workbooks.Add ThisWorkbook.Worksheets("BidTab").Copy Before:=NewBook.Sheets(1) NewBook.SaveAs Filename:=BTFfolder & "\" & BTFName & ".xlsx", FileFormat:=xlOpenXMLWorkbook End Sub 

ThisWorkbook.Worksheets("BidTab").Copy Before:=NewBook.Sheets(1)

把这个后面的语句放在这里:

 With NewBook.Sheets(1).UsedRange .Value = .Value End With 

这将删除链接并仅保留新工作表中的值。

我有一个类似的书。 你可以简化它。

 Dim shShape As Shape For i = 1 To UBound(sheetNames) mSaveWorkbook.Sheets(i).Name = sheetNames(i) If mSaveWorkbook.Sheets(i).Shapes.Count > 0 Then For Each shShape In mSaveWorkbook.Sheets(i).Shapes If shShape.Type = msoFormControl Then shShape.Delete End If Next shShape End If Next i End If