• 1000 . Предполагается, что эта программа вводит значения из A270: A371 на главную страницу J2, которая будет давать разные рейтинги для акций, которые находятся в разделе Investing A249: B260, затем код переходит к копированию Investing a249: B260 и начинает вставлять значения в ежедневные стратегии E5 (G5, I5, K5 и др. c.). Вы можете видеть, как макрос работает и изменяется с помощью значений, которые находятся в A270: A371, но он не позволяет EIKON производить расчет для внесения всех цен для каждой акции. Когда вы делаете это по одному, он будет работать, но не будет обновляться через макрос. Мне нужна строка кода, чтобы сообщить EIKON обновлять / вычислять каждый раз, когда новое значение вставляется на домашнюю страницу J2. Сообщите мне, что еще вам может понадобиться, и я отвечу на ваши вопросы.
Sub insertVarious()
'Application.CalculateFullRebuild
Const hpgName As String = "Homepage"
Const hpgCell As String = "J2"
Const invName As String = "Investing"
Const invAddr As String = "A249:B260"
Const invAddr2 As String = "A270:A371"
Const dstName As String = "Daily Strategies"
Const dstFirst As String = "E5"
Dim wb As Workbook: Set wb = ThisWorkbook
Dim hpg As Range: Set hpg = wb.Worksheets(hpgName).Range(hpgCell)
Dim inv As Range: Set inv = wb.Worksheets(invName).Range(invAddr)
Dim inv2 As Range: Set inv2 = wb.Worksheets(invName).Range(invAddr2)
Dim UB1 As Long: UB1 = inv.Rows.Count
Dim UB2 As Long: UB2 = inv.Columns.Count
Dim NoA As Long: NoA = inv2.Rows.Count
Dim Daily As Variant: ReDim Daily(1 To UB1, 1 To NoA * UB2)
Dim Curr As Variant, j As Long, k As Long, l As Long
For j = 1 To NoA
hpg.Value = inv2.Cells(j).Value
'hpg.Parent.Calculate
'inv.Parent.Calculate
Curr = inv.Value
GoSub writeDaily
Next j
wb.Worksheets(dstName).Range(dstFirst).Resize(UB1, NoA * UB2) = Daily
MsgBox "Data transferred.", vbInformation, "Success"
Exit Sub
writeDaily:
For k = 1 To UB1
For l = 1 To UB2
Daily(k, (j - 1) * 2 + l) = Curr(k, l)
Next l
Next k
Return
End Sub