nick7inc
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору LomL Цитата: можно ли в Excel VBA сделать так что бы кнопка нажималась автоматически | А зачем нажимать? Можно процедуру, которая вызывается при её нажатии, сделать Public (а не Private) и вызвать напрямую из кода: Код: Sub ttt() UserForm1.CommandButton1_Click End Sub | Добавлено: Цитата: как мне скопировать строку с этим адресом | Выразитесь по-точнее, если можно. Судя по коду вы её и получаете в переменную firstAddress. Добавлено: ol7ca Цитата: почему- то когда стоит On Error Resume Next, то ингда(не всгда) присваивается следующе по ходу значение. хотя ошибки в текущей ячейке нет. | А если в отладчике по шагам проследить? Пробовали? Добавлено: На будущее: если у вас что-то не получается попробуйте разбить сложное выражение на простые. Используйте временные переменные, хранящие результат функций, которые у вас используются в сложном выражении: Цитата: Set X = Workbooks("map3.xls").Sheets("TB").Columns(11) _ .Find(What:=ws.Cells(i, "AA"), LookAt:=xlWhole) | Здесь для отладки я бы ввёл переменную типа variant: Код: dim v as variant, temp_range as range [...] v=ws.Cells(i, "AA") set temp_range = Workbooks("map3.xls").Sheets("TB").Columns(11) temp_range.Find(What:=v, LookAt:=xlWhole) | , а в процессе выполнения смотрел в отладчике кроме значения этой переменной её тип. Можно пользоваться в Watch окне функцией typename(v) или в Immediate Window написать Print typename(v), v. Добавлено: Зачемайте тип v и сравнивайте его с допустимым набором типов, понимаемых функцией. Resume Next - плохой тон программирования. Надо стараться самому исключать ситации с ошибками, например, проверять ячейку на допустимые значения, перед тем, как её использовать. А если невозможно предугадать ошибку, то можно использовать On error goto, но только с умом. P.S. Учите типы, смотрите, какие функции, методы и т.п. с какими типами/объектами работают. Старайтесь передавать им только этот тип, избегая черезмерного использования типа Variant (в вашем примере он подразумевается). Добавлено: SnowMan80 Цитата: необходимо чтобы этот список был пронумерован попорядку, по возрастанию. Для того чтобы можно было его распечатать не привлевая дополнительные усилия. Это можно сделать не прибегая к VBA? | Можно и без VBA. Используйте условную функию =ЕСЛИ(A2=0; B1; B1+1). Вводите её в ячейку B2, в столбце B идёт нумерация, в столбце A контрольные значения. | Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 22:41 12-03-2008 | Исправлено: nick7inc, 23:03 12-03-2008 |
|