В настоящее время я работаю над кодом VBA, который выполняет следующие действия:
1. Копирование тикера с одного листа на другой (та же рабочая книга)
Лист, на который копируется тикер, должен быть обновлен и заполнен bloomberg
Этот лист экспортируется в формате PDF
Выполните тот же процесс, пока на первом листе больше нет тикеров.
У меня проблемы, потому что созданный мной код, похоже, не работает должным образом с Bloomberg.Итерация работает хорошо, как и экспорт в PDF.Однако, пока идет цикл, у Bloomberg недостаточно времени для обновления листа, который я хочу экспортировать.Я получаю три листа из четырех с N / As вместо правильных данных.
Вот что у меня есть до сих пор
Public Sub RefreshStaticLinks()
Call Worksheets("M").UsedRange.Select
Call Application.Run("RefreshCurrentSelection")
Call Application.OnTime(Now + TimeValue("00:01:00"), "M_PDF")
End Sub
Sub Mosaic_PDF()
Dim File_Path As String
Dim File_Name As String
Dim ReportTic As String
Dim Rng As Range, cl As Range
Set Rng = Worksheets("Set_up").Range("A2:A300")
With Worksheets("Mosaic")
For Each cl In Rng
If cl <> "" Then
Sheets("Mosaic").Range("G3") = cl
With Worksheets("Mosaic")
Call Application.Run("RefreshStaticLinks")
End With
File_Path = "N:\DATA\EQTY\EQFUND\SI\Projects\Standard Reporting\PDF Reports\Mosaic Fundamental Positioning\"
File_Name = "Fundamental Positioning Summary "
ReportTic = Format(ActiveWorkbook.Sheets("Mosaic").Range("G3").Text)
'Exports to pdf
With ActiveWorkbook
With Sheets(Array("Mosaic")).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=File_Path & File_Name & ReportTic & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End With
End With
End If
Next cl
End With
End Sub