Хобрук: Ваш путь к мастерству в программировании

Как использовать vlookup (формулу) для поиска строки в VBA

Привет всем, у меня проблема с VBA, когда я пытаюсь использовать формулу vlookup следующим образом:

Range("H21").Formula = "=VLOOKUP("cleared",'mortgage'!A2:F12,4,FALSE)"

он продолжает говорить мне, что часть «очищена» является синтаксической ошибкой. Может кто-нибудь сказать мне, как с этим бороться? Заранее спасибо.

19.07.2017

Ответы:


1

двойные кавычки:

Range("H21").Formula = "=VLOOKUP(""cleared"",'mortgage'!A2:F12,4,FALSE)"
19.07.2017

2

Ваш VBE считает, что очищенное слово не является частью строки, так как вы заключили его двойными кавычками заранее. Затем вы начинаете новую строку сразу после очищенного слова.

Чтобы использовать двойные кавычки (также известные как речевые метки) внутри строки, вам нужно удвоить их следующим образом:

Range("H21").Formula = "=VLOOKUP(""cleared"",'mortgage'!A2:F12,4,FALSE)"
19.07.2017

3

Используйте одинарные кавычки вокруг очищенного (НЕ РАБОТАЕТ):

Range("H21").Formula = "=VLOOKUP('cleared','mortgage'!A2:F12,4,FALSE)"

EDIT: исправление, сделанное OP:

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

19.07.2017
  • Excel использует одинарные кавычки только для имени листа, а не для обозначения строкового литерала. 19.07.2017
  • Ты прав, я совсем забыл. Я отредактирую свой комментарий с вашим исправлением, чтобы сделать его более заметным на случай, если кто-то совершит аналогичную ошибку. 20.07.2017

  • 4

    Или другой вариант:

    1. Запишите рабочую формулу в Excel.
    2. Выберите ячейку с формулой.
    3. Запустите следующий код:

    Sub TestMe
         debug.print selection.formula
    End Sub
    

    1. Проверьте ближайшее окно — это формула, которую вы используете в Excel.
    2. Если вам нужна полезная формула, которую вы можете скопировать + вставить в свой код VBA, используйте это:

    Option Explicit
    
    Public Sub PrintMeUsefulFormula()
    
        Dim strFormula  As String
        Dim strParenth  As String
    
        strParenth = """"
    
        strFormula = Selection.Formula
        strFormula = Replace(strFormula, """", """""")
    
        strFormula = strParenth & strFormula & strParenth
        Debug.Print strFormula
    
    End Sub
    

    1. Проверьте ближайшее окно.
    19.07.2017
  • В данном случае это совсем не поможет, так как возвращаемый текст =VLOOKUP("cleared",mortgage!A2:F12,4,FALSE) 19.07.2017
  • @CLR - несколько месяцев назад я знал, что чего-то не хватает в этом ответе - stackoverflow.com/questions/43050331/ 19.07.2017
  • Новые материалы

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

    Расистский и сексистский робот, обученный в Интернете
    Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

    Управление состоянием в микрофронтендах
    Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..

    Декларативное и функциональное программирование в стиле LINQ с использованием JavaScript с использованием каррирования и генератора ...
    LINQ - одна из лучших функций C #, которая обеспечивает элегантный способ написания кода декларативного и функционального стиля, который легко читать и понимать. Благодаря таким функциям ES6,..

    Структуры данных в C ++ - Часть 1
    Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

    Как я опубликовал свое первое приложение в App Store в 13 лет
    Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..