Я новичок в этом сайте, но уже несколько лет пользуюсь VBA. У меня есть проблема, которая началась только недавно и является довольно противоречивой и появляется на моем P C с Office 365, но не на ноутбуке с MS Office Pro 2016.
У меня проблема в том, что когда формула вставленный в лист, он изменяет структурированную ссылку со столбца "DesktopObs [Class Class]" на ячейку "DesktopObs [@ [Class Title]]" .
Я получаю это в столбце: =MAX(IF(DesktopObs[@[Class Title]]=[@[Class Title]],IF(DesktopObs[@[Observation Type]]<>"Re-Obs",DesktopObs[Actual Observation date])))
Пока я должен получить это: =MAX(IF(DesktopObs[Class Title]=[@[Class Title]],IF(DesktopObs[Observation Type]<>"Re-Obs",DesktopObs[Actual Observation date])))
Ниже приведен (часть) код, который я использую для «Восстановить формулы».
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Class Setup")
Set rng = ws.Range("tbl_ClassSetup[Latest Desktop Observation]")
Call f_WorksheetProtection(ws, False)
strFormula(1) = "=MAX(IF(DesktopObs[Class Title DO]=[@[Class Title]],IF(DesktopObs[Observation Type]<>""Re-Obs"",DesktopObs[Actual Observation date])))"
strFormula(2) = "=MAX(IF(DesktopObs[Class Title]=[@[Class Title]],IF(DesktopObs[Observation Type]=""Re-Obs"",DesktopObs[Actual Observation date])))"
For i = 1 To 2
rng.Offset(0, i - 1).Formula = strFormula(i)
rng.Offset(0, i - 1).FormulaArray = rng.Offset(0, i - 1).Formula
Next i
Я подозреваю, что это как-то связано с Office 365 (возможно, с автозаменой), но не смог определить, что именно. Я даже попробовал и переустановил Windows и весь офис с нуля, но эта проблема все еще возникает.