Try:
.Formula = "='" & strProjectName & "'!" & Cells(2, 7).Address
Если имя листа (strProjectName
) имеет пробелы, нужно включить одинарные кавычки в формуле строки.
Если это не разрешено, предоставьте дополнительную информацию о конкретной ошибке или ошибке.
Update
В комментариях вы указываете, что вы заменяя пробелы на подчеркивания. Может быть, вы делаете что-то вроде:
strProjectName = Replace(strProjectName," ", "_")
Но если вы не подталкивают, что изменения в Worksheet.Name
собственности, вы можете ожидать, это произойдет:
- Диалог файла просмотра появляется
- Формула возвращает
#REF
error
Причина того, что вы передаете ссылку на лист, который не существует, что является wh y вы получаете ошибку #REF. Диалоговое окно файла - это попытка позволить вам исправить эту ссылку, указав файл, в котором указано имя листа .. Когда вы отменяете, ожидается ошибка #REF.
Так что вам нужно сделать:
Worksheets(strProjectName).Name = Replace(strProjectName," ", "_")
strProjectName = Replace(strProjectName," ", "_")
Тогда ваша формула должна работать.
я не пробовал вашу формулу, но в качестве альтернативы вы можете всегда создавать изменения событие в модуле рабочего листа и сделать расчет программно. – Trace
Что такое примерное значение для 'strProjectName'? Вы пытаетесь ссылаться на рабочий лист или книгу, которая не существует? – Stewbob
В этот момент он не существует, но несколько строк позже создается лист. Не думал бы, что это будет проблемой, когда макрос заканчивается; лист на месте – Ryuu