VBA испортил мою структурированную ссылку в формуле - PullRequest
0 голосов
/ 03 апреля 2020

Я новичок в этом сайте, но уже несколько лет пользуюсь 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 и весь офис с нуля, но эта проблема все еще возникает.

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