#vba #excel-2010
#vba #excel-2010
Вопрос:
Excel VBA: Моя проблема проста (как и я !!). Мне нужно использовать «Поле ввода» для ввода числа (3 цифры = xxx) и в итоге получить goto Linexxx, т.е. Строка — это текст, xxx — это (очевидно) переменная. Я пытался привязать xxx к текстовой «строке», используя amp; (амперсанд), т.Е. Перейти к «Строке» amp;Cont1 (Cont1 — это «вариант»), но VBA выдает «ошибка компиляции: ожидаемый номер строки или метка». Поскольку я довольно новичок в VBA, не мог бы кто-нибудь указать мне правильное направление, пожалуйста. Спасибо
Комментарии:
1. см. vbaexpress.com/forum/showthread.php?39352-Call-Sub-GoTo-Point
2. Спасибо за ссылку, однако, поскольку я не очень хорошо знаком с Excel VBA (или любым другим VBA), у меня возникли проблемы с применением его к моей проблеме. Каждое из предложений, по-видимому, подразумевает x количество подпрограмм для вызова x количество строк, 5 строк в порядке, как вы справляетесь с 30 или 40 строками?
3. Код в целом состоит из 2 фаз: время компиляции (т. Е. Момент, когда ваш компьютер интерпретирует написанный вами код и понимает, что делать) и время выполнения (т. Е. Момент, когда ваш компьютер запускает код. Весь код должен быть известен во время компиляции, в то время как переменные могут / будут определены во время выполнения. В вашем случае вы пытаетесь определить часть своего кода
GoTo Line amp; Cont1
во время выполнения (т. Е. После того, как пользователь вводит переменную), но вы не можете, потому что весь код должен быть известен во время компиляции, и именно поэтому вы получаете ошибку компиляции.4.Что вы можете сделать, так это использовать
Select Case
оператор, где каждомуCase
соответствует вашGoTo
. Например: и т.д.Select Case Cont1
Case "XXX":
GoTo LineXXX
Case "YYY":
GoTo LineYYY
5. Спасибо за объяснение. Не зная, где вы находитесь в мире, достаточно сказать, что здесь становится поздно, и звонки в постель. Я попробую еще раз завтра. С уважением