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

Вход

Регистрация

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

 

= Мир MS Excel/Региональные настройки взбесились или код кривой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Региональные настройки взбесились или код кривой (Макросы/Sub)
Региональные настройки взбесились или код кривой
Chifa Дата: Среда, 15.04.2015, 09:28 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Всем доброго дня, я с программированием не знаком попробовал сам определить проблему мне её выделило :D пробовал подбирал но увы без успешно.Искал на форуме но увы из за нехватки знаний не знаю с какой стороны копать. Код писал не я и не крал человек его выложил в свободный доступ. Теперь более конкретно. При попытке загрузить данные выдает ошибку
[vba]
Код
DATE_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, DateColumn).Value
При смене региональных настроек на английский при русском вот так
HIGH_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, HighColumn).Value * PipsPointer
В целом выглядет вот так
'Перенос значений котировок с листа в массивы
ReDim HIGH_VALUE(FullCounter)
ReDim LOW_VALUE(FullCounter)
ReDim DATE_VALUE(FullCounter)

For i = 0 To (FullCounter - 1)
HIGH_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, HighColumn).Value * PipsPointer
LOW_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, LowColumn).Value * PipsPointer
DATE_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, DateColumn).Value
Next
[/vba]
Данные которые загружаются выглядят так
[vba]
Код
<DATE>    <OPEN>    <HIGH>    <LOW>    <CLOSE>    <TICKVOL>    <VOL>
2011.12.27 00:00    1.30600    1.30630    1.30500    1.30580    393    0
2011.12.27 00:15    1.30570    1.30620    1.30520    1.30520    278    0
2011.12.27 00:30    1.30530    1.30590    1.30520    1.30560    183    0
[/vba]

Кому не сложно посмотрите пожалуйста подскажите как вылечить или хоть отправьте в нужное место для поиска :( Если нужно скину файл с данными. У меня 2007 стоит
Заранее благодарен
К сообщению приложен файл: MainBook.xlsm (68.7 Kb) · readme.txt (1.9 Kb)


Сообщение отредактировал Chifa - Среда, 15.04.2015, 09:30
 
Ответить
СообщениеВсем доброго дня, я с программированием не знаком попробовал сам определить проблему мне её выделило :D пробовал подбирал но увы без успешно.Искал на форуме но увы из за нехватки знаний не знаю с какой стороны копать. Код писал не я и не крал человек его выложил в свободный доступ. Теперь более конкретно. При попытке загрузить данные выдает ошибку
[vba]
Код
DATE_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, DateColumn).Value
При смене региональных настроек на английский при русском вот так
HIGH_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, HighColumn).Value * PipsPointer
В целом выглядет вот так
'Перенос значений котировок с листа в массивы
ReDim HIGH_VALUE(FullCounter)
ReDim LOW_VALUE(FullCounter)
ReDim DATE_VALUE(FullCounter)

For i = 0 To (FullCounter - 1)
HIGH_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, HighColumn).Value * PipsPointer
LOW_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, LowColumn).Value * PipsPointer
DATE_VALUE(i) = Worksheets(WorksheetsNumber).Cells(i + 2, DateColumn).Value
Next
[/vba]
Данные которые загружаются выглядят так
[vba]
Код
<DATE>    <OPEN>    <HIGH>    <LOW>    <CLOSE>    <TICKVOL>    <VOL>
2011.12.27 00:00    1.30600    1.30630    1.30500    1.30580    393    0
2011.12.27 00:15    1.30570    1.30620    1.30520    1.30520    278    0
2011.12.27 00:30    1.30530    1.30590    1.30520    1.30560    183    0
[/vba]

Кому не сложно посмотрите пожалуйста подскажите как вылечить или хоть отправьте в нужное место для поиска :( Если нужно скину файл с данными. У меня 2007 стоит
Заранее благодарен

Автор - Chifa
Дата добавления - 15.04.2015 в 09:28
KSV Дата: Среда, 15.04.2015, 11:52 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Если нужно скину файл с данными.

Добрый день!
Естественно, файл с данными нужно прикладывать. Иначе, как проверять?

Исправил. Теперь, достаточно просто открыть MainBook.xlsm и нажать кнопку "Построить график", а остальные книги он откроет сам, а если их нет в том же каталоге, то создаст.
Также, поставил "заглушку" (диалог с последующим завершением), если в книге котировок нет данных. (чтоб не вываливалась ошибка)
А вообще, код настолько не оптимизирован, что проще написать все заново, чем его править...

[p.s.]Проверял на приложенном файле EURUSDM5.xlsx, который заполнил по аналогии с приведенным вами форматом, все работает. По крайней мере, ошибок не выдает :)
К сообщению приложен файл: 8212395.xlsm (65.6 Kb) · EURUSDM5.xlsx (8.3 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Среда, 15.04.2015, 12:02
 
Ответить
Сообщение
Если нужно скину файл с данными.

Добрый день!
Естественно, файл с данными нужно прикладывать. Иначе, как проверять?

Исправил. Теперь, достаточно просто открыть MainBook.xlsm и нажать кнопку "Построить график", а остальные книги он откроет сам, а если их нет в том же каталоге, то создаст.
Также, поставил "заглушку" (диалог с последующим завершением), если в книге котировок нет данных. (чтоб не вываливалась ошибка)
А вообще, код настолько не оптимизирован, что проще написать все заново, чем его править...

[p.s.]Проверял на приложенном файле EURUSDM5.xlsx, который заполнил по аналогии с приведенным вами форматом, все работает. По крайней мере, ошибок не выдает :)

Автор - KSV
Дата добавления - 15.04.2015 в 11:52
Hugo Дата: Среда, 15.04.2015, 12:01 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Первое на чём споткнулось -
[vba]
Код
Set SettingSheet = Workbooks("MainBook.xlsm").Worksheets("Настройки")
[/vba]
Вот тут пришлось дописать .xlsm
Далее не смотрел - нет всех нужных файлов, вникать некогда.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеПервое на чём споткнулось -
[vba]
Код
Set SettingSheet = Workbooks("MainBook.xlsm").Worksheets("Настройки")
[/vba]
Вот тут пришлось дописать .xlsm
Далее не смотрел - нет всех нужных файлов, вникать некогда.

Автор - Hugo
Дата добавления - 15.04.2015 в 12:01
KSV Дата: Среда, 15.04.2015, 12:08 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Hugo, я сделал проще...
Все Workbooks("MainBook.xlsm") заменил на ThisWorkbook. А зачем обращаться к текущей книге по имени? :)
И дописал функцию, которая возвращает нужную книгу (по имени, указанному на листе настроек, не добавляя явного расширения файла, т.к нужно учитывать, что расширение может быть и старым - .xls), если она уже открыта, а если нет, то открывает ее, если файл книги уже есть, или создает новую книгу и сохраняет ее с указанным именем.


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеHugo, я сделал проще...
Все Workbooks("MainBook.xlsm") заменил на ThisWorkbook. А зачем обращаться к текущей книге по имени? :)
И дописал функцию, которая возвращает нужную книгу (по имени, указанному на листе настроек, не добавляя явного расширения файла, т.к нужно учитывать, что расширение может быть и старым - .xls), если она уже открыта, а если нет, то открывает ее, если файл книги уже есть, или создает новую книгу и сохраняет ее с указанным именем.

Автор - KSV
Дата добавления - 15.04.2015 в 12:08
Chifa Дата: Среда, 15.04.2015, 12:43 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
KSV, Hugo, Спасибо что откликнулись сейчас буду играться, если не сложно то в двух словах скажите в чем причина чтоб знать где начинать копаться в случае такого коллапса
 
Ответить
СообщениеKSV, Hugo, Спасибо что откликнулись сейчас буду играться, если не сложно то в двух словах скажите в чем причина чтоб знать где начинать копаться в случае такого коллапса

Автор - Chifa
Дата добавления - 15.04.2015 в 12:43
Hugo Дата: Среда, 15.04.2015, 13:02 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Лучше всегда дописывать расширение - т.к. с расширением сработает всегда, а без - только если соотв. настроена Windows (как я понял - у Вас она именно так и настроена :) )
А ещё лучше писать код как рассказал KSV - я тоже в своих кодах никогда не использую такой подход как в Вашем файле, я всегда использую объекты и объектные переменные.


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Среда, 15.04.2015, 13:03
 
Ответить
СообщениеЛучше всегда дописывать расширение - т.к. с расширением сработает всегда, а без - только если соотв. настроена Windows (как я понял - у Вас она именно так и настроена :) )
А ещё лучше писать код как рассказал KSV - я тоже в своих кодах никогда не использую такой подход как в Вашем файле, я всегда использую объекты и объектные переменные.

Автор - Hugo
Дата добавления - 15.04.2015 в 13:02
KSV Дата: Среда, 15.04.2015, 13:10 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
в двух словах скажите в чем причина

Причина чего? :)
Причина возникновения ошибок - это неверно написанный код, даже если просто пользователь ввел не те данные, которые ожидались, или подсунул пустой лист котировок, неважно, все равно, правильно написанный код, должен учитывать возможность возникновения таких ситуаций, тем более, если этот код выкладывается как готовое решение...
В вашем случае, первая ошибка с которой я столкнулся (и не только я - Hugo вам тоже об этом написал), это неверное обращение к книге по имени (без расширения)
Дальнейшие ошибки обсуждать бессмысленно, т.к. код изначально написан "криво" - такое впечатление, что его записали макрорекордером, а потом чуть подправили :)
чтоб знать где начинать копаться в случае такого коллапса

универсальной "таблетки", увы, не существует...


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
в двух словах скажите в чем причина

Причина чего? :)
Причина возникновения ошибок - это неверно написанный код, даже если просто пользователь ввел не те данные, которые ожидались, или подсунул пустой лист котировок, неважно, все равно, правильно написанный код, должен учитывать возможность возникновения таких ситуаций, тем более, если этот код выкладывается как готовое решение...
В вашем случае, первая ошибка с которой я столкнулся (и не только я - Hugo вам тоже об этом написал), это неверное обращение к книге по имени (без расширения)
Дальнейшие ошибки обсуждать бессмысленно, т.к. код изначально написан "криво" - такое впечатление, что его записали макрорекордером, а потом чуть подправили :)
чтоб знать где начинать копаться в случае такого коллапса

универсальной "таблетки", увы, не существует...

Автор - KSV
Дата добавления - 15.04.2015 в 13:10
KSV Дата: Среда, 15.04.2015, 14:24 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Chifa, так у вас данные должны грузиться из текстового файла? Я то вашу инструкцию не читал, просто посмотрел по коду, что ему нужно (а ему нужен был файл Excel), так и сделал :)
Так, а если исходные данные в текстовом формате, то нафига заставлять пользователя конвертировать его в Excel, если это можно делать автоматом?!...
[p.s.]Чуть позже напишу вам функцию.


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеChifa, так у вас данные должны грузиться из текстового файла? Я то вашу инструкцию не читал, просто посмотрел по коду, что ему нужно (а ему нужен был файл Excel), так и сделал :)
Так, а если исходные данные в текстовом формате, то нафига заставлять пользователя конвертировать его в Excel, если это можно делать автоматом?!...
[p.s.]Чуть позже напишу вам функцию.

Автор - KSV
Дата добавления - 15.04.2015 в 14:24
Chifa Дата: Среда, 15.04.2015, 15:26 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
KSV, буду очень благодарен
 
Ответить
СообщениеKSV, буду очень благодарен

Автор - Chifa
Дата добавления - 15.04.2015 в 15:26
KSV Дата: Среда, 15.04.2015, 16:55 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Chifa, Кладите этот файл и файл котировок (EURUSDMonthly.prn) в одну папку (никакие другие файлы больше не нужны), открывайте этот файл и нажимайте кнопку "Построить график". Будет создан файл книги для графиков (на листе настроек его имя XOchartEURUSD, но можете поменять...) и сохранен в этом же каталоге, для дальнейшего использования.
[p.s.]Пришлось вникать в код... До чего же гадко он написан...
И еще... А для чего файл котировок сохранять в юникоде? (ведь в нем нет ни одного символа Unicode) Чтобы размер файла был вдвое больше? :) Или Есть и другие файлы котировок, которые тоже подсовуются этому MainBook?
К сообщению приложен файл: 4698514.xlsm (69.9 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеChifa, Кладите этот файл и файл котировок (EURUSDMonthly.prn) в одну папку (никакие другие файлы больше не нужны), открывайте этот файл и нажимайте кнопку "Построить график". Будет создан файл книги для графиков (на листе настроек его имя XOchartEURUSD, но можете поменять...) и сохранен в этом же каталоге, для дальнейшего использования.
[p.s.]Пришлось вникать в код... До чего же гадко он написан...
И еще... А для чего файл котировок сохранять в юникоде? (ведь в нем нет ни одного символа Unicode) Чтобы размер файла был вдвое больше? :) Или Есть и другие файлы котировок, которые тоже подсовуются этому MainBook?

Автор - KSV
Дата добавления - 15.04.2015 в 16:55
Chifa Дата: Пятница, 12.06.2015, 09:01 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
KSV, Прошу прощения за длительное отсутствие. Болел не было возможности сейчас проверю
 
Ответить
СообщениеKSV, Прошу прощения за длительное отсутствие. Болел не было возможности сейчас проверю

Автор - Chifa
Дата добавления - 12.06.2015 в 09:01
Chifa Дата: Пятница, 12.06.2015, 09:50 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Спасибо огромное за помощь все работает просто чудесно. hands hands hands hands hands hands hands hands hands
 
Ответить
СообщениеСпасибо огромное за помощь все работает просто чудесно. hands hands hands hands hands hands hands hands hands

Автор - Chifa
Дата добавления - 12.06.2015 в 09:50
KSV Дата: Пятница, 12.06.2015, 18:26 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
пожалуйста! :)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениепожалуйста! :)

Автор - KSV
Дата добавления - 12.06.2015 в 18:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Региональные настройки взбесились или код кривой (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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