Excel всегда будет искать последнее местоположение, в котором был найден файл в формуле.Если вы всегда устанавливаете эту формулу в своем диапазоне, не превращая ее в значения, она будет делать это постоянно.Вы можете попробовать один из следующих.а)
With .Range("B2:B" & lastRow)
.Formula = "Insert your formula"
.Formula = .Value
End With
Это всегда будет превращаться в значения и перестанет смотреть на местоположение.
б) Используйте ячейку для хранения пути, который вы хотите, чтобы формула искала значения, сохранитьзначение ячейки как переменную в VBA и использовать его в своей формуле, говоря:
file1 = Sheets("Variables").Range("A1")
'You would store on that range and sheet
the name of the file, let's say it is "Report.xlsx"
With .Range("B2:B" & lastRow)
.Formula = "=SUMIFS('Ta Force " & file1 & "'!Per_Diem[Brock PO'#],'Ta Force " & file1 &
"'!Per_Diem[Date],A7,'Ta Force " & file1 & "'!Per_Diem[EE'#],C7)"
End With
Вы можете выполнять эту замену каждый раз с именами листов, путями, файлами и т. д.
Пустья знаю, поможет ли это тебе.