Вставить как ценности - PullRequest
0 голосов
/ 27 марта 2019

Мне действительно нужна помощь, чтобы вставить следующий набор данных в качестве значений.

В настоящее время я хочу просмотреть некоторые рабочие листы в своей рабочей книге и скопировать и вставить данные из выбранных.

Однако я не уверен, как вставить данные, которые я копирую, в качестве значений.

Я написал следующий код, чтобы пройтись по нужным листам, а также выбрать нужную дату на каждом листе. Однако, когда я вставляю эти данные на вкладку «Основные данные», я не могу вставить их в качестве значений.

    Sub exa()
Dim wks As Worksheet

For Each wks In ThisWorkbook.Worksheets
If Not wks.Name = "Master Data" _
And Not wks.Name = "Query --->" _
And Not wks.Name = "Pivot Portfolio Movement" _
And Not wks.Name = "PortfolioMovement - All" _
And Not wks.Name = "Bank Holidays" _
And Not wks.Name = "Property" _
And Not wks.Name = "Postcodes" _
And Not wks.Name = "Product" _
And Not wks.Name = "PartRedemption" _
And Not wks.Name = "Wrap" _
And Not wks.Name = "Completions Database" _
And Not wks.Name = "Default" _
And Not wks.Name = "ReturningBorrower" _
And Not wks.Name = "Extensions" _
And Not wks.Name = "PortfolioMovement" _
And Not wks.Name = "Drawdowns" _
And Not wks.Name = "Dev Interest WIP" _
And Not wks.Name = "Write Off Loans" _
And Not wks.Name = "Interest Rate" _
And Not wks.Name = "Admin" _
And Not wks.Name = "Datatape --->" _
And Not wks.Name = "Data" _
And Not wks.Name = "Drawn Balance by Loan" _
And Not wks.Name = "Sheet1" Then
wks.Range("H2:N2" & wks.Cells(Rows.Count, "N").End(xlUp).Row).Copy _
Destination:=Worksheets("Master Data").Cells(Rows.Count, "A").End(xlUp).Offset(1)
End If
Next
End Sub

1 Ответ

0 голосов
/ 28 марта 2019

Для вставки в качестве значений необходимо использовать Range.PasteSpecial метод : .PasteSpecial xlPasteValues

Обратите внимание, что если вы используете массив для пропуска рабочих листов, вы можете уменьшить свой код следующим образом:

Option Explicit

Public Sub exa()
    Dim SkipWorksheets As Variant
    SkipWorksheets = Array("Master Data", "Query --->", "Pivot Portfolio Movement", "PortfolioMovement - All", _
                           "Bank Holidays", "Property", "Postcodes", "Product", "PartRedemption", "Wrap", _
                           "Completions Database", "Default", "ReturningBorrower", "Extensions", _
                           "PortfolioMovement", "Drawdowns", "Dev Interest WIP", "Write Off Loans", _
                           "Interest Rate", "Admin", "Datatape --->", "Data", "Drawn Balance by Loan", "Sheet1")


    Dim Wks As Worksheet
    For Each Wks In ThisWorkbook.Worksheets
        If Not (UBound(Filter(SkipWorksheets, Wks.Name)) > -1) Then
            Wks.Range("H2:N2" & Wks.Cells(Rows.Count, "N").End(xlUp).Row).Copy
            Worksheets("Master Data").Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues
        End If
    Next Wks
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...