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

Вход

Регистрация

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

 

= Мир MS Excel/Использование русские названий Листов в не русском Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Использование русские названий Листов в не русском Excel (Макросы Sub)
Использование русские названий Листов в не русском Excel
jack_jackson Дата: Суббота, 08.02.2014, 01:29 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Использую одни и те же таблицы на разных компьютерах, на одних русский Excel 2003, а на некоторых немецкий 2000. Все вкладки названы русскими именами (символами). Немецкий Excel нормально, работает и с формулами и со ссылками на Листы (которые названы по-русски), нормально отображает имена русских Листов. Но вот макрос, который содержит команду, открывающую определённую вкладку, Sheets("Имя листа").Select не хочет понимать русских имен. И естественно, выдает ошибку.

Понятно, что проще всего переименовать все Листы, так чтобы названия были латиницей. Но хочется найти какой-то изящный выход. Возможно есть решение ссылаться в функции Sheets("Имя листа").Select не на "Имя листа", а например на его какой-то внутренний код, номер или что-то подобное. Как-то ведь функции со ссылками на ячейки в других листах, немецкий эксел понимает.

Подскажите, что-нибудь интересное.


Сообщение отредактировал jack_jackson - Суббота, 08.02.2014, 01:30
 
Ответить
СообщениеИспользую одни и те же таблицы на разных компьютерах, на одних русский Excel 2003, а на некоторых немецкий 2000. Все вкладки названы русскими именами (символами). Немецкий Excel нормально, работает и с формулами и со ссылками на Листы (которые названы по-русски), нормально отображает имена русских Листов. Но вот макрос, который содержит команду, открывающую определённую вкладку, Sheets("Имя листа").Select не хочет понимать русских имен. И естественно, выдает ошибку.

Понятно, что проще всего переименовать все Листы, так чтобы названия были латиницей. Но хочется найти какой-то изящный выход. Возможно есть решение ссылаться в функции Sheets("Имя листа").Select не на "Имя листа", а например на его какой-то внутренний код, номер или что-то подобное. Как-то ведь функции со ссылками на ячейки в других листах, немецкий эксел понимает.

Подскажите, что-нибудь интересное.

Автор - jack_jackson
Дата добавления - 08.02.2014 в 01:29
_Boroda_ Дата: Суббота, 08.02.2014, 02:38 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Sheets(2).Select - второй по порядку в книге лист
и еще - в VBA в окна проекта замечали наверняка, русское название листа стоит в сковочках, а перед ним еще название типа sheets1? Так это codename листа. По нему тоже можно обращаться. Это имя не зависит от того, как лист назван пользователем и каким является этот лист в книге по счету. Выгляди это обращение так: sheets1.Select, или Лист1.Select, или nnn.Select.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеSheets(2).Select - второй по порядку в книге лист
и еще - в VBA в окна проекта замечали наверняка, русское название листа стоит в сковочках, а перед ним еще название типа sheets1? Так это codename листа. По нему тоже можно обращаться. Это имя не зависит от того, как лист назван пользователем и каким является этот лист в книге по счету. Выгляди это обращение так: sheets1.Select, или Лист1.Select, или nnn.Select.

Автор - _Boroda_
Дата добавления - 08.02.2014 в 02:38
jack_jackson Дата: Суббота, 08.02.2014, 13:34 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Sheets(2).Select - в таком виде у меня на русском Excel 2003 заработало. Т.е. обратился по порядковому номера расположения листа.

codename листов у меня типа: Лист1, Лист2 и т.д. тоже все латиницей, попробовал переименовать на Sheets1, получилось. Но обратиться к этому листу командой Sheets1.Select все равно не получалось, все время ошибка. Формат обращения: nnn.Select тоже выдавал ошибку.

В понедельник буду пробовать на немецком Excel :D
За совет спасибо!


Сообщение отредактировал jack_jackson - Суббота, 08.02.2014, 14:42
 
Ответить
СообщениеSheets(2).Select - в таком виде у меня на русском Excel 2003 заработало. Т.е. обратился по порядковому номера расположения листа.

codename листов у меня типа: Лист1, Лист2 и т.д. тоже все латиницей, попробовал переименовать на Sheets1, получилось. Но обратиться к этому листу командой Sheets1.Select все равно не получалось, все время ошибка. Формат обращения: nnn.Select тоже выдавал ошибку.

В понедельник буду пробовать на немецком Excel :D
За совет спасибо!

Автор - jack_jackson
Дата добавления - 08.02.2014 в 13:34
jack_jackson Дата: Вторник, 11.02.2014, 21:33 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Работает и на русском и на немецком, но только команда Sheets(2).Select . Что моим задачам вполне удовлетворяет. Спасибо Boroda за совет.

Получились такой вот макрос:[vba]
Код
Sub Auto_Close()
Sheets(2).Select

Range("S3") = Now
Range("S2") = Now

ActiveWorkbook.Save
End Sub
[/vba]Выявился один нюанс.
Если открыто две книги: одна в которой мой макрос и еще любая другая, то если активна другая книга и пытаешься завершить работу Excel, то возникает либо ошибка (всяческие в зависимости от этой второй книги, например нет листа номер 2, или он защищен и т.д.) либо макрос записывает значения в ячейки S3, S2 в не нужной книге.

Подскажите, как это исправить!


Сообщение отредактировал jack_jackson - Вторник, 11.02.2014, 21:59
 
Ответить
СообщениеРаботает и на русском и на немецком, но только команда Sheets(2).Select . Что моим задачам вполне удовлетворяет. Спасибо Boroda за совет.

Получились такой вот макрос:[vba]
Код
Sub Auto_Close()
Sheets(2).Select

Range("S3") = Now
Range("S2") = Now

ActiveWorkbook.Save
End Sub
[/vba]Выявился один нюанс.
Если открыто две книги: одна в которой мой макрос и еще любая другая, то если активна другая книга и пытаешься завершить работу Excel, то возникает либо ошибка (всяческие в зависимости от этой второй книги, например нет листа номер 2, или он защищен и т.д.) либо макрос записывает значения в ячейки S3, S2 в не нужной книге.

Подскажите, как это исправить!

Автор - jack_jackson
Дата добавления - 11.02.2014 в 21:33
Hugo Дата: Вторник, 11.02.2014, 21:35 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Думаю на той немецкой машине нужно включить поддержку юникода, чтоб в коде нормально читалась кириллица.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеДумаю на той немецкой машине нужно включить поддержку юникода, чтоб в коде нормально читалась кириллица.

Автор - Hugo
Дата добавления - 11.02.2014 в 21:35
jack_jackson Дата: Вторник, 11.02.2014, 21:38 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Думаю на той немецкой машине нужно включить поддержку юникода, чтоб в коде нормально читалась кириллица.


Да там винда XP какая-то давно ставленая, офис 2000, причем все сугубо лицензионное, дистрибутивов нет и как там добавить поддержку языков не понять.
 
Ответить
Сообщение
Думаю на той немецкой машине нужно включить поддержку юникода, чтоб в коде нормально читалась кириллица.


Да там винда XP какая-то давно ставленая, офис 2000, причем все сугубо лицензионное, дистрибутивов нет и как там добавить поддержку языков не понять.

Автор - jack_jackson
Дата добавления - 11.02.2014 в 21:38
Hugo Дата: Вторник, 11.02.2014, 21:40 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Если читаете код - кириллицу читаете? Или непонятные каракули?


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЕсли читаете код - кириллицу читаете? Или непонятные каракули?

Автор - Hugo
Дата добавления - 11.02.2014 в 21:40
jack_jackson Дата: Вторник, 11.02.2014, 21:42 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Если читаете код - кириллицу читаете? Или непонятные каракули?


Кириллица в Excel-файле читается, файлы с русскими именами винда понимает, а вот в коде макроса кириллица каракулями.
 
Ответить
Сообщение
Если читаете код - кириллицу читаете? Или непонятные каракули?


Кириллица в Excel-файле читается, файлы с русскими именами винда понимает, а вот в коде макроса кириллица каракулями.

Автор - jack_jackson
Дата добавления - 11.02.2014 в 21:42
Hugo Дата: Вторник, 11.02.2014, 21:44 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Ну вот потому код и не находит эти листы по этим каракулям. И думаю в ячейках тоже значения кириллицей не найдёт, если где-то нужно.
В общем, нужно чтоб там была читаемая кириллица.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНу вот потому код и не находит эти листы по этим каракулям. И думаю в ячейках тоже значения кириллицей не найдёт, если где-то нужно.
В общем, нужно чтоб там была читаемая кириллица.

Автор - Hugo
Дата добавления - 11.02.2014 в 21:44
jack_jackson Дата: Вторник, 11.02.2014, 21:55 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Ну вот потому код и не находит эти листы по этим каракулям.

Это то понятно, только как исправить я не знаю.

И думаю в ячейках тоже значения кириллицей не найдёт, если где-то нужно.

Тут как раз таки ищет. И стандартный поиск Excel работает и функции разные работают, например ВПР ищет в русском тексте без проблем, и функция ПОИСК ищет, и даже вот такая функция МЕСЯЦ с параметрами (A1&0) работает, где A1="Февраль", ну и другие тоже работают с русским текстом.


Сообщение отредактировал jack_jackson - Вторник, 11.02.2014, 21:55
 
Ответить
Сообщение
Ну вот потому код и не находит эти листы по этим каракулям.

Это то понятно, только как исправить я не знаю.

И думаю в ячейках тоже значения кириллицей не найдёт, если где-то нужно.

Тут как раз таки ищет. И стандартный поиск Excel работает и функции разные работают, например ВПР ищет в русском тексте без проблем, и функция ПОИСК ищет, и даже вот такая функция МЕСЯЦ с параметрами (A1&0) работает, где A1="Февраль", ну и другие тоже работают с русским текстом.

Автор - jack_jackson
Дата добавления - 11.02.2014 в 21:55
Hugo Дата: Вторник, 11.02.2014, 22:48 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Вы не поняли - код не найдёт. Например find в коде по например слову "например" :(
Или всякие UDF с названием/параметрами кириллицей работать не будут.
Как править - я точно не знаю. Включите поддержку юникода для неюникодных программ:


Или может в реестре вот тут нужно поменять и заработает:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage]"1252"="c_1251.nls"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Nls\CodePage]"1252"="c_1251.nls"
Ну и другие ControlSet'ы посмотрите.
К сообщению приложен файл: 9422362.png (22.2 Kb)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВы не поняли - код не найдёт. Например find в коде по например слову "например" :(
Или всякие UDF с названием/параметрами кириллицей работать не будут.
Как править - я точно не знаю. Включите поддержку юникода для неюникодных программ:


Или может в реестре вот тут нужно поменять и заработает:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage]"1252"="c_1251.nls"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Nls\CodePage]"1252"="c_1251.nls"
Ну и другие ControlSet'ы посмотрите.

Автор - Hugo
Дата добавления - 11.02.2014 в 22:48
jack_jackson Дата: Вторник, 11.02.2014, 22:49 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Вы не поняли

Теперь понял :) попробую, поковыряю
 
Ответить
Сообщение
Вы не поняли

Теперь понял :) попробую, поковыряю

Автор - jack_jackson
Дата добавления - 11.02.2014 в 22:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Использование русские названий Листов в не русском Excel (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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