Копирование и вставка данных VBA в виде значений в таблицу Excel без вставки - PullRequest
0 голосов
/ 06 октября 2010

Я написал код, который открывает рабочий лист с подключением к данным SQL, затем я обновляю данные, копирую значения и пытаюсь вставить эту информацию в исходную электронную таблицу.

данные не вставляютсяОднако, если я вручную прошагаю по коду F8 для вставки данных - я не могу понять, почему это так -

Если это простой вопрос, мои извинения, я новичок в VBA, я задал вопросМой офис и поиск в Google - все еще не могу найти ответ - вот код

Sub getdata () '' getdata Macro '' Сочетание клавиш: Ctrl + a '' делает вкладку отчета о владениях видимой и очищаетсодержание

Sheets("Holdings Report").Visible = True
Sheets("Holdings Report").Activate
Range("A2:J65536").Select
Selection.ClearContents

'открыть исходный отчет об авуарах, обновить данные, скопировать данные

Workbooks.Open "\\hcc-fileprint\sys\Share\Institutional Group\Rebalancing\HCNet Update.xlsm"
Sheets("Sheet1").Activate
Application.Wait Now + TimeValue("00:00:02")
ActiveWorkbook.RefreshAll
Application.Wait Now + TimeValue("00:00:02")
ActiveWorkbook.RefreshAll
Range("A2:J65536").Select
Selection.Copy

' активировать таблицу перебалансировки, вставить значения и затем скрыть вкладку

ThisWorkbook.Activate
Sheets("Holdings Report").Activate
Range("A2").Select
ActiveSheet.paste

End Sub

Ответы [ 2 ]

0 голосов
/ 07 октября 2010

Нужно изменить команду вставки, чтобы вставить значения.

ActiveSheet.PasteSpecial xlPasteValues
0 голосов
/ 06 октября 2010

Может ли быть так, что вы на самом деле ничего не копируете, потому что запрос к базе данных, запущенный с RefreshAll, выполняется в фоновом режиме и не возвратил никаких данных к тому времени, когда вы достигнете Копировать?

Я вижу, что выВы ждете 2 секунды, но это может оказаться недостаточно продолжительным, в то время как пошаговое выполнение дает Excel больше времени для получения данных.

К сожалению, нет конкретного события, на которое вы могли бы реагироватькогда RefreshAll завершится, что будет "правильным" способом решения этой проблемы.Возможно, Workbook.SheetChange запущен, хотя;Вы могли бы попробовать это.

Действительно, просто выстрел в темноте, но сам код копирования / вставки не кажется неправильным, и вы не сказали, что у вас есть какие-либо ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...