2015-03-25 8 views
0
Set startRange = ThisWorkbook.Worksheets("Sheet3").Range("a65536").End(xlUp) 
Worksheets("Sheet1").Range("B2:B" & lastrowA).Copy startRange1.Offset(1, 2).Value 
Worksheets("Sheet2").Range("A2:A" & lastrowA).Copy startRange1.Offset(1, 1) 
Application.CutCopyMode = False 

Я просто хочу скопировать значения ячеек, а не формулы в нем, так как возникают проблемы при копировании на другой лист и сохранении файла. Я тоже попробовал value2, но он не работает. пожалуйста, помогите Спасибо.Ошибка при копировании Значение ячейки в VBA

+0

Где строки для установки диапазона 'startRange1',' lastrowA'? Использование ** a65536 ** является устаревшим. Когда вы скопировали диапазон, вам нужно отрегулировать смещение. – PatricK

ответ

2

Чтобы просто вставить значения, вам необходимо использовать метод PasteSpecial.

Изменить код:

Set startRange = ThisWorkbook.Worksheets("Sheet3").Range("a65536").End(xlUp) 
Worksheets("Sheet1").Range("B2:B" & lastrowA).Copy 
startRange1.Offset(1, 2).PasteSpecial Paste:=xlPasteValues 
Application.CutCopyMode = False 
Worksheets("Sheet2").Range("A2:A" & lastrowA).Copy 
startRange1.Offset(1, 1).PasteSpecial Paste:=xlPasteValues 
Application.CutCopyMode = False 

, и я считаю, что это должно работать, как задумано. Вы также можете вставить числовые символы, и в этом случае вы меняете xlPasteValues на xlPasteValuesAndNumberFormats. Для получения дополнительной информации о том, что вы можете сделать с PasteSpecial, я рекомендую вам ознакомиться с сайтом, который я связал с выше.

+0

Спасибо, человек! Он работал идеально. – Jain

1

Попробуйте это, понятное дело.

Sub PasteThem() 
    Dim oRngCopy As Range, oRngPasteTo As Range, lastrowA As Long 
    lastrowA = 123 ' Whatever you get this from... 
    ' Locate where to start pasting 
    Set oRngPasteTo = ThisWorkbook.Worksheets("Sheet3").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) 
    ' Sets Range 1 to copy 
    Set oRngCopy = Worksheets("Sheet1").Range("B2:B" & lastrowA) 
    ' Copy the Range 
    oRngCopy.Copy 
    oRngPasteTo.PasteSpecial xlPasteValues 
    ' Adjust the Range to start pasting 
    Set oRngPasteTo = oRngPasteTo.Offset(oRngCopy.Rows + 1, 0) 
    ' Sets Range 2 to copy 
    Set oRngCopy = Worksheets("Sheet2").Range("A2:A" & lastrowA) 
    ' Copy the Range 
    oRngCopy.Copy 
    oRngPasteTo.PasteSpecial xlPasteValues 
    ' Clean Up 
    Set oRngCopy = Nothing 
    Set oRngPasteTo = Nothing 
End Sub 
+0

Спасибо, человек! Он работал идеально. – Jain

Смежные вопросы