मेरे पास कई टैब पेस्ट करने के लिए कोड है। हालांकि, मुझे यकीन नहीं है कि स्रोत कोड को यथासंभव कम किए बिना उन्हें मूल्यों के रूप में कैसे पेस्ट किया जाए।

मुझे लगता है कि यह वर्तमान में एक नई कार्यपुस्तिका में प्रतिलिपि बनाने के डिफ़ॉल्ट .Copy का उपयोग कर रहा है, इसलिए मुझे लगता है कि मुझे नई कार्यपुस्तिका को स्पष्ट रूप से घोषित करना पड़ सकता है, लेकिन निश्चित नहीं है।

Sub ExportTabs(Boro As String)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'ExportTabs
'This subroutine exports separate tabs into new workbooks. It will take in a borough and export it into a workbook,
'saved in the same directory as the master workbook. The export will be a copy paste
'of values and formatting.
'
'Parameters: Boro (String)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Step 1:    Declare your variables
    Dim MasterFile As Workbook
    Dim FileName As String
    Dim LeadingText As String
    Dim DateT As String


'Step 2:    Set file name strings, including hard-coding the header text
    LeadingText = "Completion Report - "
    DateT = Format(DateTime.Date, "MM-dd-yy")


'Step 3:    Find active workbook and relevant sheet, and copy and save with new file name
    Set MasterFile = ActiveWorkbook
    FileName = MasterFile.Path & "\" & LeadingText & DateT & " " & Boro & ".xlsx"
    MasterFile.Sheets(Array(Boro & " Completion Report", Boro & " Summary", "About")).Copy
    ActiveWorkbook.SaveAs FileName, FileFormat:=51

'Step 4:    Close new workbook
    ActiveWorkbook.Close

End Sub
0
Christina Zhou 26 अगस्त 2019, 22:43

1 उत्तर

सबसे बढ़िया उत्तर

मैंने इसके लिए Step 3 के तहत कोड को बदलना समाप्त कर दिया:

    Set MasterFile = ActiveWorkbook
    FileName = MasterFile.Path & "\" & LeadingText & DateT & " " & Boro & ".xlsx"
    MasterFile.Sheets(Array(Boro & " Completion Report", Boro & " Summary", "About")).Copy
    For Each sht In ActiveWorkbook.Sheets
        'Only copy and paste as values in Summary tab
        If sht.Name = Boro & " Summary" Then
            sht.UsedRange.Copy
            sht.UsedRange.PasteSpecial xlValues
            sht.UsedRange.PasteSpecial xlFormats
        End If
    Next sht
    ActiveWorkbook.SaveAs FileName, FileFormat:=51

मुझे पता चला कि .Copy एक नई कार्यपुस्तिका में कॉपी करता है जिसे एक्सेल ActiveWorkbook के रूप में पहचानता है, इसलिए आप वहां से कार्यपुस्तिका को बदल सकते हैं। मानों के रूप में चिपकाने का एकमात्र तरीका .PasteSpecial xlValues विधि प्रतीत होता है।

0
Christina Zhou 29 अगस्त 2019, 13:59