Search ListBox Error _ Не удалось установить свойство List. Недопустимое значение свойства

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

/[^"~]+/ все, что не является или «(регулярная строка)

"~{" expression "}", нормальное выражение

/~(?!{)/ handle ~ без {. use? !, потому что мы не должны потреблять следующий символ (это может быть "или другое ~)

from lark import Lark

print (Lark(r"""
    string: "\"" string_thing* "\""
    string_thing: /[^"~]+/
        | "~{" expression "}"
        | /~(?!{)/
    expression: /[^}]+/
""", start='string', ambiguity="explicit").parse(
# '"a"'
'"a~b{}c}d~{1}g"'
# '"~abc~"'
# '"~{1}~~{1}~~~{1}"'
).pretty())
0
задан Pᴇʜ 21 January 2019 в 07:47
поделиться

1 ответ

Переменная x1 не объявлена. Поэтому это должен быть вариант. Похоже, что [myCar] подразумевается как имя диапазона. Если это так, можно было бы присвоить его x1, если бы его местоположение было известно. Возможно, ваш TextBox находится на рабочем листе, и ссылка на самом деле работает. Возможно, x1 пусто с этого момента. Я предлагаю вам проверить.

Затем вы назначаете «MyCar» свойству RowSource в ListBox. Как вы знаете, это свойство содержит строку. Если MyCar является именем ранга, он не может быть действительным адресом диапазона. Возможно, что-то вроде Range(MyCar).Address подойдет. .RowSource = "myCar" просто назначает слово «MyCar» для RowSource, и это должно дать сбой. В For i = 1 To UBound(x1, 1) вы теперь ожидаете, что x1 будет массивом. Возможно, x1 = [myCar] эквивалентно ActiveSheet.Range(MyCar).Value. Я бы не использовал этот синтаксис, но вы проверили его функциональность выше.

Предполагается, что x1 действительно содержит значения диапазона. назначить их свойству List в ListBox не удастся, если свойство ColumnsCount не установлено. Это не видно из вашего кода. Мы также не можем сказать, равны ли столбцы, доступные в x1, столбцам, доступным в списке, или столбцам, требуемым кодом.

ListBox имеет строки и столбцы. Учитывая, что ваша переменная i считает строки, ваша переменная ii должна считать столбцы (я бы использовал R и C, чтобы помочь мне следить за тем, что я делаю). Затем, с учетом всех строк и столбцов, на что рассчитывает ваша переменная iii?

Итак, совершенно очевидно, что в вашем коде недостаточно контроля над строками и столбцами ListBox. Однако после сортировки вы можете обнаружить, что значения, которые вы хотите присвоить, не существуют. Поэтому строка, которая вылетает из вашей программы, может содержать более одной ошибки.

0
ответ дан Variatus 21 January 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: