Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Функция исполняется "через раз". - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Функция исполняется "через раз". (Макросы/Sub)
Функция исполняется "через раз".
Юрий_Нд Дата: Суббота, 29.06.2019, 02:24 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Доброй ночи всем.
Как-то странно себя ведет функция.
Захочет выполнит действие..., не захочет..., не выполнит...
Чаще выполняется после того, как я сделаю какие-то изменения в самой функции.
Но иногда и этого не происходит...
Спасибо ____________ Юрий.
п.с. Пожалуйста не ищите смысла в функции, его там просто нет сейчас.
Я упростил все насколько возможно, чтобы это не затрудняло и "не затеняло" мой вопрос.
К сообщению приложен файл: 1_1-1.xlsm (23.3 Kb)


Сообщение отредактировал Юрий_Нд - Суббота, 29.06.2019, 02:49
 
Ответить
СообщениеДоброй ночи всем.
Как-то странно себя ведет функция.
Захочет выполнит действие..., не захочет..., не выполнит...
Чаще выполняется после того, как я сделаю какие-то изменения в самой функции.
Но иногда и этого не происходит...
Спасибо ____________ Юрий.
п.с. Пожалуйста не ищите смысла в функции, его там просто нет сейчас.
Я упростил все насколько возможно, чтобы это не затрудняло и "не затеняло" мой вопрос.

Автор - Юрий_Нд
Дата добавления - 29.06.2019 в 02:24
_Boroda_ Дата: Суббота, 29.06.2019, 13:34 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Не совсем понятено вопрос - что, когда, при каких условиях выполняется или, что важнее, не выполняется, но хотелось бы
Попробуйте добавить после Дим-ов строку
[vba]
Код
Application.Volatile
[/vba]
Что это такое - смю справку, там нормально написано вроде


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНе совсем понятено вопрос - что, когда, при каких условиях выполняется или, что важнее, не выполняется, но хотелось бы
Попробуйте добавить после Дим-ов строку
[vba]
Код
Application.Volatile
[/vba]
Что это такое - смю справку, там нормально написано вроде

Автор - _Boroda_
Дата добавления - 29.06.2019 в 13:34
Юрий_Нд Дата: Суббота, 29.06.2019, 14:19 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Спасибо за поддержку Александр.
Сам разобрался.
В числовых данных таблицы спряталась ненужная "."...
Подкрасил жёлтым цветом.
... елы-палы, полдня работы в корзину...
... еще Вам голову морочил...
... стыдно-с...
Прошу прощения.
К сообщению приложен файл: 7021258.xlsm (23.2 Kb)


Сообщение отредактировал Юрий_Нд - Суббота, 29.06.2019, 14:23
 
Ответить
СообщениеСпасибо за поддержку Александр.
Сам разобрался.
В числовых данных таблицы спряталась ненужная "."...
Подкрасил жёлтым цветом.
... елы-палы, полдня работы в корзину...
... еще Вам голову морочил...
... стыдно-с...
Прошу прощения.

Автор - Юрий_Нд
Дата добавления - 29.06.2019 в 14:19
InExSu Дата: Воскресенье, 30.06.2019, 10:05 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
У Вас:
[vba]
Код
Dim nc0, ns0, nc, ns, es, ec As Long
[/vba]
Переменные
nc0, ns0, nc, ns, es
будут НЕ Long
и в
[vba]
Код
Dim x, y, x1, x2, y1, y2, f1, f2, f3, f4, f5, f6, f7 As Double
[/vba]
Переменные
x, y, x1, x2, y1, y2, f1, f2, f3, f4, f5, f6
будут НЕ Double

Deftype - "ускоренное" объявление переменных


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
У Вас:
[vba]
Код
Dim nc0, ns0, nc, ns, es, ec As Long
[/vba]
Переменные
nc0, ns0, nc, ns, es
будут НЕ Long
и в
[vba]
Код
Dim x, y, x1, x2, y1, y2, f1, f2, f3, f4, f5, f6, f7 As Double
[/vba]
Переменные
x, y, x1, x2, y1, y2, f1, f2, f3, f4, f5, f6
будут НЕ Double

Deftype - "ускоренное" объявление переменных

Автор - InExSu
Дата добавления - 30.06.2019 в 10:05
Юрий_Нд Дата: Воскресенье, 30.06.2019, 15:34 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Доброго дня Михаил.
Всегда очень рад нашему общению.
Замечание очень правильное, вот только немножко припозднилось.
Сегодня утром наступил на эти грабли, пришлось все переделать. Практически то, что Вы советуете сейчас.
До сих пор не понимаем, как Все это раньше работало.
Просто когда я это писал, всё делал как слепой котёнок, на ощупь.
А может быть ещё найдёте время взглянуть...
Что-то не получается у меня переопределить массив, если я первоначально определяю тип данных массива.
Также может быть ещё какую-то ерунду найдёте...
[vba]
Код
Public Function ИНТЕР(ЗНАЧ As Double, Вектор_АРГ As Range, Вектор_ФУНК As Range)
Dim v                As Double
Dim cnt, i, avu      As Long
Dim x1, x2, y1, y2   As Double
Dim x(100), y(100)   As Double
cnt = Вектор_АРГ.Cells.Count
v = ЗНАЧ
ReDim x(1 To cnt): ReDim y(1 To cnt)
[/vba]


Сообщение отредактировал Юрий_Нд - Воскресенье, 30.06.2019, 15:37
 
Ответить
СообщениеДоброго дня Михаил.
Всегда очень рад нашему общению.
Замечание очень правильное, вот только немножко припозднилось.
Сегодня утром наступил на эти грабли, пришлось все переделать. Практически то, что Вы советуете сейчас.
До сих пор не понимаем, как Все это раньше работало.
Просто когда я это писал, всё делал как слепой котёнок, на ощупь.
А может быть ещё найдёте время взглянуть...
Что-то не получается у меня переопределить массив, если я первоначально определяю тип данных массива.
Также может быть ещё какую-то ерунду найдёте...
[vba]
Код
Public Function ИНТЕР(ЗНАЧ As Double, Вектор_АРГ As Range, Вектор_ФУНК As Range)
Dim v                As Double
Dim cnt, i, avu      As Long
Dim x1, x2, y1, y2   As Double
Dim x(100), y(100)   As Double
cnt = Вектор_АРГ.Cells.Count
v = ЗНАЧ
ReDim x(1 To cnt): ReDim y(1 To cnt)
[/vba]

Автор - Юрий_Нд
Дата добавления - 30.06.2019 в 15:34
InExSu Дата: Воскресенье, 30.06.2019, 16:56 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
закоммен
Цитата Юрий_Нд, 30.06.2019 в 15:34, в сообщении № 5 ()
переопределить массив, если я первоначально определяю тип данных массива.

закомментируйте
[vba]
Код
Dim x(100), y(100) As Double
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac

Сообщение отредактировал InExSu - Воскресенье, 30.06.2019, 16:56
 
Ответить
Сообщениезакоммен
Цитата Юрий_Нд, 30.06.2019 в 15:34, в сообщении № 5 ()
переопределить массив, если я первоначально определяю тип данных массива.

закомментируйте
[vba]
Код
Dim x(100), y(100) As Double
[/vba]

Автор - InExSu
Дата добавления - 30.06.2019 в 16:56
InExSu Дата: Воскресенье, 30.06.2019, 16:59 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Цитата Юрий_Нд, 30.06.2019 в 15:34, в сообщении № 5 ()
не понимаем, как Все это раньше работало

А у меня целый сайт про написание понятного кода


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
Цитата Юрий_Нд, 30.06.2019 в 15:34, в сообщении № 5 ()
не понимаем, как Все это раньше работало

А у меня целый сайт про написание понятного кода

Автор - InExSu
Дата добавления - 30.06.2019 в 16:59
Юрий_Нд Дата: Воскресенье, 30.06.2019, 17:38 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Михаил, так вот с этого у меня утром началась вся котовасия...
Записал в Excel с помощью распознавания текста огромную таблицу с цифровыми данными.
Стала программа считать, и без всякого зазрения совести заглотила текстовые данные, вместо цифровых. Сами понимаете, что она тогда насчитала...
По-моему, если я последую с Вашему совету, меня так и будет продолжаться ерундистика.
До тех пор, пока я не запишу, что в массив можно записывать только, если не ошибаюсь действительные числа.
А по поводу понятного кода, могу сказать, что мне бы сейчас хоть какой-то код написать. А потом уже будем думать, понятный он или нет...
 
Ответить
СообщениеМихаил, так вот с этого у меня утром началась вся котовасия...
Записал в Excel с помощью распознавания текста огромную таблицу с цифровыми данными.
Стала программа считать, и без всякого зазрения совести заглотила текстовые данные, вместо цифровых. Сами понимаете, что она тогда насчитала...
По-моему, если я последую с Вашему совету, меня так и будет продолжаться ерундистика.
До тех пор, пока я не запишу, что в массив можно записывать только, если не ошибаюсь действительные числа.
А по поводу понятного кода, могу сказать, что мне бы сейчас хоть какой-то код написать. А потом уже будем думать, понятный он или нет...

Автор - Юрий_Нд
Дата добавления - 30.06.2019 в 17:38
_Boroda_ Дата: Воскресенье, 30.06.2019, 17:44 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Юрий, для начала прочитайте вот это https://docs.microsoft.com/ru-ru....riables
Там, в частности, есть такая фраза
Цитата
Вы можете объявить несколько переменных в одном операторе. Чтобы указать тип данных, необходимо задать тип данных для каждой переменной

И пример оттуда же
[vba]
Код
'В приведенном ниже операторе переменные intX, intY и intZ объявлены типом Integer.

Dim intX As Integer, intY As Integer, intZ As Integer

'В приведенном ниже операторе intX и intY объявлены как Variant и только intZ объявлен как тип Integer.

Dim intX, intY, intZ As Integer
[/vba]
Михаил об этом и писал выше


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЮрий, для начала прочитайте вот это https://docs.microsoft.com/ru-ru....riables
Там, в частности, есть такая фраза
Цитата
Вы можете объявить несколько переменных в одном операторе. Чтобы указать тип данных, необходимо задать тип данных для каждой переменной

И пример оттуда же
[vba]
Код
'В приведенном ниже операторе переменные intX, intY и intZ объявлены типом Integer.

Dim intX As Integer, intY As Integer, intZ As Integer

'В приведенном ниже операторе intX и intY объявлены как Variant и только intZ объявлен как тип Integer.

Dim intX, intY, intZ As Integer
[/vba]
Михаил об этом и писал выше

Автор - _Boroda_
Дата добавления - 30.06.2019 в 17:44
boa Дата: Понедельник, 01.07.2019, 13:17 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 550
Репутация: 167 ±
Замечаний: 0% ±

365
Юрий_Нд,
Вы можете воспользоваться Символами типов идентификаторов
Тогда объявление переменных будет выглядеть так:
[vba]
Код
Dim v#
Dim cnt&, i&, avu&
Dim x1#, x2#, y1#, y2#
Dim x#(), y#()
[/vba]
Компактно и все переменные определены.


 
Ответить
СообщениеЮрий_Нд,
Вы можете воспользоваться Символами типов идентификаторов
Тогда объявление переменных будет выглядеть так:
[vba]
Код
Dim v#
Dim cnt&, i&, avu&
Dim x1#, x2#, y1#, y2#
Dim x#(), y#()
[/vba]
Компактно и все переменные определены.

Автор - boa
Дата добавления - 01.07.2019 в 13:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Функция исполняется "через раз". (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!