Я написал немного кода, который копирует номера несмежных ячеек с одного листа и вставляет их на другой лист, если их значений нет в новом списке.Я вставил строку в конец списка, а затем вставил отсутствующее значение и повторял до тех пор, пока все отсутствующие значения не были добавлены.Когда я закончу, я сортирую столбец и применяю формулу в соседних столбцах, чтобы соответствовать длине нового расширенного списка.
Я читал в других вопросах, что я могу просто сделать
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)))"