У меня есть следующий код VBA, который берет одну строку из данных с листом, копирует данные, а затем вставляет данные в следующую доступную строку в списке «Листинг». Однако исходная строка имеет формулы, и мне нужны значения для вставки, а не формулы. Я видел множество способов сделать это с помощью Range.PasteSpecial, но этот код не использовал Range, и я не уверен, как его включить.Используйте VBA для вставки значений из одной таблицы в другую
Примечание: я изменил этот код отсюда: http://msdn.microsoft.com/en-us/library/office/ff837760(v=office.15).aspx. Первоначально он имел оператор If для соответствия содержимому в ячейке, а затем вставлял его в определенный лист в соответствии с содержимым ячейки. У меня был только один лист для копирования и не нужен IF. Мне действительно не нужно находить последнюю строку данных для копирования, поскольку она будет только когда-либо одной строкой с диапазоном A2: N2. Но если я выберу раздел FinalRow и For и замените его диапазоном («A2: N2»), он не работает, поэтому я оставил их.
Любые указания по добавлению в свойстве PasteValues без создания это более сложное, я бы очень признателен! Я также открыт для упрощения переменной For или FinalRow, например, с помощью Range. Я только знакомы с VBA, выполнив несколько вещей с ним, но обычно после многого поиска и изменения кода. Благодаря!
Public Sub CopyData()
Sheets("Tabled data").Select
' Find the last row of data
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
' Loop through each row
For x = 2 To FinalRow
ThisValue = Cells(x, 1).Value
Cells(x, 1).Resize(1, 14).Copy
Sheets("Running list").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Tabled data").Select
Next x
End Sub