Проблемы с "при вводе формулы через .FORMULA и попытке использовать переменную для ссылки на строку - PullRequest
0 голосов
/ 28 февраля 2019

Я написал немного кода, который копирует номера несмежных ячеек с одного листа и вставляет их на другой лист, если их значений нет в новом списке.Я вставил строку в конец списка, а затем вставил отсутствующее значение и повторял до тех пор, пока все отсутствующие значения не были добавлены.Когда я закончу, я сортирую столбец и применяю формулу в соседних столбцах, чтобы соответствовать длине нового расширенного списка.

Я читал в других вопросах, что я могу просто сделать

Range("A1:A13").Formula = "A1+B2"

, и он будет производить столбец, такой как

A1+B2
A2+B3
A3+B4
...
A13+B14

И это здорово, вот что ясделал.

Затем я обнаружил, что у меня были проблемы с формулами, такими как:

=IF(B2="","",A1+B2)

, которая была исправлена ​​после некоторого поиска, чтобы произвести

=IF(B2="""","""",A1+B2)

, и я подумал, что у меня естьэто решалось до тех пор, пока я не попробовал что-то вроде

    =IF(B2="DOG","cat",A1+B2)

, которое я сначала попробовал

=IF(B2="""DOG""","""cat""",A1+B2)

, который не работал, а затем выяснил, что у меня было слишком много ", и после некоторого исследования я отрегулировал егона

=IF(B2=""DOG"",""cat"",A1+B2)

Так что я думал, что понял эту цитату, но оказалось, что я где-то теряюсь в кавычках.

Итак, моя рабочая формула в Excel:

=IF(C14="","",HYPERLINK(MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1)),FIND("]", CELL("filename",$A$1))-FIND("[",CELL("filename",$A$1))+1)&"'"&C14&"'!$A$1",VLOOKUP(C14,ItemList,2,0)))

В основном я создаю гиперссылку на другой лист. У меня есть переменная, которая отслеживает первую строку 14 в этом случае, поэтому я попытался закодировать это в формулу, чтобы я мог легко изменить первую переменную строкиесли это когда-либо изменилось, а не идти втьфу все мои жестко закодированные формулы и их обновление.В результате я получил следующую строку кода, которая продолжает вызывать ошибку при выполнении строки:

Dim Item_List_Sheet As Worksheet
Dim Item_List_First_Row As Long
Dim Item_List_Max_Row As Long

Item_List_First_Row = 14
Item_List_Max_Row = Item_List_First_Row + Application.WorksheetFunction.Max(Item_List_Sheet.Range("B:B")) - 1

Item_List_Sheet.Range("B" & Item_List_First_Row & ":" & "B" & Item_List_Max_Row).Formula = "=MAX($B$" & Item_List_First_Row - 1 & ":B" & Item_List_First_Row - 1 & ")+1"
'the above formula works as intended

'the formula below causes problems
Item_List_Sheet.Range("D" & Item_List_First_Row & ":" & "D" & Item_List_Max_Row).Formula = "=IF(C" & Item_List_First_Row & "="""","""",HYPERLINK(MID(CELL(""filename"",$A$1),FIND(""["",CELL(""filename"",$A$1)),FIND(""]"", CELL(""filename"",$A$1))-FIND(""["",CELL(""filename"",$A$1))+1)&""'""C" & Item_List_First_Row & "'!$A$1"",VLOOKUP(C" & Item_List_First_Row & ",ItemList,2,0)))"

Может кто-то увидеть, где я иду не так?

ОБНОВЛЕНИЕ

Я попытался настроить формулу согласно комментарию GSerg, что два & отсутствовали, и я все еще получаю сообщение об ошибке:

Item_List_Sheet.Range("D" & Item_List_First_Row & ":" & "D" & Item_List_Max_Row).Formula = "=IF(C" & Item_List_First_Row & "="""","""",HYPERLINK(MID(CELL(""filename"",$A$1),FIND(""["",CELL(""filename"",$A$1)),FIND(""]"", CELL(""filename"",$A$1))-FIND(""["",CELL(""filename"",$A$1))+1)&""'""&C" & Item_List_First_Row & ""&'!$A$1"",VLOOKUP(C" & Item_List_First_Row & ",ItemList,2,0)))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...