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

时间:2017-01-12 19:43:33

标签: excel vba excel-vba

因此,我尝试创建一个工作簿,该工作簿使用来自初始数据的工作表的多个引用来自动填充不同工作表中的单元格以生成表单(预先格式化的工作表)。对于其中一个工作表,我需要将其作为自己的.xlsx工作簿保存在单独的网络驱动器上。到目前为止,我开发的代码创建了新的工作簿,但单元格仍包含引用原始工作簿的原始公式。有没有办法在保存到新工作簿时将单元格转换为值?这是我所拥有的子。 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

2 个答案:

答案 0 :(得分:2)

  

#include <iostream> using namespace std; int fun() { string c; while(cin>>c) { if(isdigit(c[0])) return stoi(c); } } int main() { int a = fun(); cout<<a<<" "; return 0; }

在上述声明之后加上:

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

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

答案 1 :(得分:0)

我在类似的书中有这个。你可以简化它。

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