Я уже давно борюсь с этой проблемой.
Я написал подпрограмму VBA, которая должна найти область на одном листе, а затем вырезать и вставить ее на другой лист.Если я запускаю следующий код, он не работает:
' This does not work
DSheet.Range(SummaryDataAddr, DSheet.Cells.SpecialCells(xlLastCell)).Cut
PSheet.Range(SummaryDataLocation).PasteSpecial Paste:=xlPasteValues
Но если я изменю код для копирования области с первого листа, вставьте его на второй лист, а затем вернитесь на первый листи явно удалить регион, это работает.
' But this does work. Why?
DSheet.Range(SummaryDataAddr, DSheet.Cells.SpecialCells(xlLastCell)).Copy
PSheet.Range(SummaryDataLocation).PasteSpecial Paste:=xlPasteValues
DSheet.Range(SummaryDataAddr, DSheet.Cells.SpecialCells(xlLastCell)).Delete
Кто-нибудь видел подобную проблему раньше?Есть ли способ использовать функцию cut и заставить все это работать?
Чтобы получить доступ к электронной таблице с кодом VBA, перейдите сюда: https://www.dropbox.com/s/satv6z95tlqw7lr/CutBug.xlsm?dl=0
Подпрограмма называется "CreateDLDataPivot "(это урезанная версия более крупной программы, над которой я работаю).
Спасибо за любую помощь!