У меня есть следующая подпрограмма:
Sub AppendFixedLegData(FloatingLegRows As Long)
Dim loFixedLegData As ListObject
Dim i As Integer
Set loFixedLegData = Sheets("D. Fixed Leg").ListObjects("d_Fixed_Leg_Data")
ThisWorkbook.Sheets("D. PA Data").Range("d_PA_Data").Offset(FloatingLegRows, 0).Resize(109, 247) = loFixedLegData.DataBodyRange
For i = 1 To loFixedLegData.Range.Rows.Count
Debug.Print loFixedLegData.ListRows(i).Range(i, 4).Value
Next i
End Sub
Оператор ThisWorkbook не вставляет данные, содержащиеся в loFixedLegData.DataBodyRange, хотя он выполняет делает. Более того, если я нажимаю Ctrl-End на листе, куда записываются данные, Ctrl-End переходит в конечную ячейку записываемого раздела, доказывая, что некоторая часть оператора выполняется, но данные не наклеивается.
Я подтвердил, что данные действительно существуют, с помощью оператора debug.print непосредственно под ним.
Почему это не работает?


Я обнаружил проблему ... очень простую. В конце DataBodyRange должен быть .Значение, то есть должен быть DataBodyRange.Value. Как только я вставил это, все было хорошо.
Диапазон
d_PA_Data, вероятно, не такого же размера, какloFixedLegData. Проверьте, сколько ячеек в ширину и в высоту. (Также для уточнения: то, что вы делаете, не называется оклейка)