Дата: Воскресенье, 21.10.2012, 15:48 |
Сообщение № 1
Группа: Гости
' bestfax.Cells(1, 1).Value = datarec With bestfax For ii = ns To 15000 If .Cells(ii, 1).Value = "" Then Exit For End If Next ii ns = ii Code1 = Code1 + 1 perem.Cells(9, 2).Value = Code1 .Cells(ns, 1).Value = "10200" + Format(Code1) '""K174"" 'Code1
' bestfax.Cells(1, 1).Value = datarec With bestfax For ii = ns To 15000 If .Cells(ii, 1).Value = "" Then Exit For End If Next ii ns = ii Code1 = Code1 + 1 perem.Cells(9, 2).Value = Code1 .Cells(ns, 1).Value = "10200" + Format(Code1) '""K174"" 'Code1
Ну судя по всему - Code1 явно не соответствующего типа. Вы покажите весь код (и оформляйте его соотв. тегами). Вообще этот отрывок - это что-то непонятное...
Ну судя по всему - Code1 явно не соответствующего типа. Вы покажите весь код (и оформляйте его соотв. тегами). Вообще этот отрывок - это что-то непонятное...Hugo
Дата: Воскресенье, 21.10.2012, 16:33 |
Сообщение № 3
Группа: Гости
Я просто пользователь и для меня наверное очень сложно понять что надо описать. В файле есть макросы, запуская один из них он выдает ошибку и ссылается на макрос, на эту строчку. Я как собака понимаю, но объяснить не могу. Формат ячейки общий, там число к которому должна прибавиться 1 и все. Если вы не сочтете что я вообще дебил, то что надо написать что бы Вам было понятно. СПАСИБО. Надеюсь не останусь без ответа.
Я просто пользователь и для меня наверное очень сложно понять что надо описать. В файле есть макросы, запуская один из них он выдает ошибку и ссылается на макрос, на эту строчку. Я как собака понимаю, но объяснить не могу. Формат ячейки общий, там число к которому должна прибавиться 1 и все. Если вы не сочтете что я вообще дебил, то что надо написать что бы Вам было понятно. СПАСИБО. Надеюсь не останусь без ответа.анна
Извините, про регистрацию упустил из виду... Но можно положить файл на любой файлообменник - тогда нет ограничения по размеру. Но чем больше в файле лишнего, что мешает понять задачу - тем меньше шанс получить решение.
Извините, про регистрацию упустил из виду... Но можно положить файл на любой файлообменник - тогда нет ограничения по размеру. Но чем больше в файле лишнего, что мешает понять задачу - тем меньше шанс получить решение.Hugo
Не вникая в код - судя по ошибке, достаточно заменить тип Integer на Long: [vba]
Code
Dim Code1 As Long
[/vba] Чуть опоздал Но Вам вероятно есть смысл поменять тип и у numreceipt (Номер квитанции) - пока ещё резерв есть, но рано или поздно... если конечно у них нет верхнего рубежа.
Не вникая в код - судя по ошибке, достаточно заменить тип Integer на Long: [vba]
Code
Dim Code1 As Long
[/vba] Чуть опоздал Но Вам вероятно есть смысл поменять тип и у numreceipt (Номер квитанции) - пока ещё резерв есть, но рано или поздно... если конечно у них нет верхнего рубежа.Hugo
СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!!!! Думала разочаруюсь в умных людях, ноооооооооо не УДАЛОСЬ. Теперь буду знать где искать помощь, может сама поумнею. Единственное не стыдно, что лучше быть хорошим пользователем, чем изображать из себя программиста. Еще раз СПАСИБО ВСЕМ. У меня все получилось и оказалось так просто. Все поняла.
СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!!!! Думала разочаруюсь в умных людях, ноооооооооо не УДАЛОСЬ. Теперь буду знать где искать помощь, может сама поумнею. Единственное не стыдно, что лучше быть хорошим пользователем, чем изображать из себя программиста. Еще раз СПАСИБО ВСЕМ. У меня все получилось и оказалось так просто. Все поняла.анна59
Дата: Понедельник, 22.10.2012, 03:01 |
Сообщение № 14
Группа: Гости
Тип Variant
Тип данных Variant — это такой тип данных, который может сохранять в себе данные любых типов из числа допустимых в языке VBA. В переменной типа Variant может быть заключен текст, числовые значения, даты и объекты. В языке VBA тип данных Variant принят по умолчанию, т.е. если переменная была создана без указания типа, то она автоматически создается с типом Variant. Переменные этого типа принимают характеристики того конкретного типа данных, к которому относятся значения, сохраняемые в них в данный момент. Для числовых данных значение типа Variant принимает характеристики числового типа Double, для строковых данных — характеристики типа String и т.д. Благодаря такой гибкости, переменные типа Variant очень удобны, поскольку избавляют программиста от необходимости использовать конкретные типы данных. Нет необходимости думать о том, что именно будет храниться в той или иной переменной, — достаточно просто всем им назначить тип Variant. ________________________________________ Однако, несмотря на все свои преимущества, этот тип данных предполагает использование большого объема памяти. Если говорить о макросах – «программа на одной ножке» - то это замечание не критично.
Тип Variant
Тип данных Variant — это такой тип данных, который может сохранять в себе данные любых типов из числа допустимых в языке VBA. В переменной типа Variant может быть заключен текст, числовые значения, даты и объекты. В языке VBA тип данных Variant принят по умолчанию, т.е. если переменная была создана без указания типа, то она автоматически создается с типом Variant. Переменные этого типа принимают характеристики того конкретного типа данных, к которому относятся значения, сохраняемые в них в данный момент. Для числовых данных значение типа Variant принимает характеристики числового типа Double, для строковых данных — характеристики типа String и т.д. Благодаря такой гибкости, переменные типа Variant очень удобны, поскольку избавляют программиста от необходимости использовать конкретные типы данных. Нет необходимости думать о том, что именно будет храниться в той или иной переменной, — достаточно просто всем им назначить тип Variant. ________________________________________ Однако, несмотря на все свои преимущества, этот тип данных предполагает использование большого объема памяти. Если говорить о макросах – «программа на одной ножке» - то это замечание не критично.Гость
Здравствуйте гости и друзья! А можно без сарказма, на простом языке перевести вашу переписку. Ну так для меня. Я не писала эти макросы, но хотелось бы понять про "одноножки" . Может да же услышать критику. Это очень полезно пользователям. На мой взгляд, только пользователь может оценивать "творения". Спасибо.
Здравствуйте гости и друзья! А можно без сарказма, на простом языке перевести вашу переписку. Ну так для меня. Я не писала эти макросы, но хотелось бы понять про "одноножки" . Может да же услышать критику. Это очень полезно пользователям. На мой взгляд, только пользователь может оценивать "творения". Спасибо.анна59
Где Вы видели сарказм? Гость описал тип переменных "Вариант" и заметил, что такой тип прожорлив по отношению к памяти. Я ответил на последнее предложение ("все это не критично для макросов"). Это мое видение, возможно, неправильное. Кстати, на возможность неправильного объявления типа переменной я Вам сразу написал (там еще, в чужой теме).
Под переменную выделяется определенный размер памяти: Byte - 1 байт, Integer - 2, Long - 4, Date - 8 байт... Тип данных Variant забирает под себя 16-22 байта. По цифрам видно, что объявление типа Variant или необъявление переменных (а по умолчанию - Variant) неэкономно по отношению к величине используемой памяти. Это не значит, переменные нужно объявлять всегда и ни в коем случае не Variant.
Но и объявлять тип переменных тоже нужно правильно. В Вашем варианте под переменную выделен диапазон памяти, в который число не смогло поместиться, потому и возникла ошибка.
А по поводу "одноножек" - не знаю, впервые прочитал у Гостя о таком названии.
Где Вы видели сарказм? Гость описал тип переменных "Вариант" и заметил, что такой тип прожорлив по отношению к памяти. Я ответил на последнее предложение ("все это не критично для макросов"). Это мое видение, возможно, неправильное. Кстати, на возможность неправильного объявления типа переменной я Вам сразу написал (там еще, в чужой теме).
Под переменную выделяется определенный размер памяти: Byte - 1 байт, Integer - 2, Long - 4, Date - 8 байт... Тип данных Variant забирает под себя 16-22 байта. По цифрам видно, что объявление типа Variant или необъявление переменных (а по умолчанию - Variant) неэкономно по отношению к величине используемой памяти. Это не значит, переменные нужно объявлять всегда и ни в коем случае не Variant.
Но и объявлять тип переменных тоже нужно правильно. В Вашем варианте под переменную выделен диапазон памяти, в который число не смогло поместиться, потому и возникла ошибка.
А по поводу "одноножек" - не знаю, впервые прочитал у Гостя о таком названии.vikttur
Сообщение отредактировал vikttur - Понедельник, 22.10.2012, 09:28
Дополню Виктора. Кроме того, что вариант прожорлива к памяти, она еще и прожорлива к ресурсам процессора и медленна за счет неявных преобразований типов. И вообще хорошим тоном в программировании считается точная типизация переменных. Помимо всего прочего это позволяет избежать многих ошибок при неправильном написании имен переменных, несоответствий типов и т.д. уже на этапе написания и отладки программы.
Дополню Виктора. Кроме того, что вариант прожорлива к памяти, она еще и прожорлива к ресурсам процессора и медленна за счет неявных преобразований типов. И вообще хорошим тоном в программировании считается точная типизация переменных. Помимо всего прочего это позволяет избежать многих ошибок при неправильном написании имен переменных, несоответствий типов и т.д. уже на этапе написания и отладки программы.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Понедельник, 22.10.2012, 10:01