Skopiuj cały ciąg (wartości, nie formuła) VBA


Muszę kopiować wiersze między wieloma arkuszami i chociaż mi się udało, kopiuje tylko formuły, a nie wartości. Nie używałem VBA od lat i po prostu nie mogę wymyślić, jak to zrobić.
Mój istniejący kod:
Workbooks.Open filename:=NewFN
filename = Mid(NewFN, InStrRev(NewFN, "\") + 1)
For i = 1 To 14
Workbooks(filename).Sheets("sheet1").Rows(i).Copy ThisWorkbook.Sheets("BD Raw Data").Rows(insertRow) insertRow = insertRow + 1
Next i Workbooks(filename).Close SaveChanges:=False

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz użyć metody
PasteSpecial
z wyliczeniem
XlPasteType.xlPasteValues ​​
zamiast
Copy Destination
,
na przykład
Workbooks(filename).Sheets("sheet1").Rows(i).Copy 
ThisWorkbook.Sheets("BD Raw Data").Rows(insertRow).PasteSpecial Operation:=xlPasteValues
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wyboru między wartościami i formułami dokonuje się w pierwszej połowie procesu. Przyjrzyjmy się metodzie PasteSpecial, a mianowicie argumentowi xlPasteValues.
http://msdn.microsoft.com/en-us/ library/aa195818(v=office.11).aspx
http://msdn.microsoft.com/en-us/library/aa195818(v=office.11).aspx
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Spróbuj
Sub CopyFormulas()
'http://officevb.comDim sht1 As Worksheet, sht2 As WorksheetSet sht1 = Sheets("Sheet1")
Set sht2 = Sheets("sheet2")'copy columns C from sht1 formulas to sht2sht1.Range("C:C").Copy
sht2.Range("C:C").PasteSpecial xlPasteFormulasApplication.CutCopyMode = FalseEnd Sub

To jest kopia zapasowa wszystkich formuł w kolumnie C z sht1 do kolumny C w sht2
[]od

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się