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

Вход

Регистрация

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

 

= Мир MS Excel/.Name vs Item: не путаем одно с другим при цифровом значении - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » .Name vs Item: не путаем одно с другим при цифровом значении (Макросы/Sub)
.Name vs Item: не путаем одно с другим при цифровом значении
StoTisteg Дата: Вторник, 22.03.2016, 21:38 | Сообщение № 1
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
У меня есть дома Рислинг и Токай книга ActiveWorkbook с N листами. Имена листов "числовые" (типа "123", "345" и тому подобные) с тем прицелом, чтобы далее их уже вычислять. Некая функция с выходным значением As Long возвращает то, что должно считаться именем листа. Каким бы хитрым образом мне обратиться к листу так, чтобы он не принимал имя, состоящее из цифр, за индекс? То есть требуется, чтобы
[vba]
Код

i = 123
j=i+1
Worksheets(Str(j)).Activate
[/vba]
активировало лист с именем "124", а не с индексом 124.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеУ меня есть дома Рислинг и Токай книга ActiveWorkbook с N листами. Имена листов "числовые" (типа "123", "345" и тому подобные) с тем прицелом, чтобы далее их уже вычислять. Некая функция с выходным значением As Long возвращает то, что должно считаться именем листа. Каким бы хитрым образом мне обратиться к листу так, чтобы он не принимал имя, состоящее из цифр, за индекс? То есть требуется, чтобы
[vba]
Код

i = 123
j=i+1
Worksheets(Str(j)).Activate
[/vba]
активировало лист с именем "124", а не с индексом 124.

Автор - StoTisteg
Дата добавления - 22.03.2016 в 21:38
Karataev Дата: Вторник, 22.03.2016, 21:43 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
[vba]
Код
Worksheets(CStr(j)).Activate
[/vba]
P.S. функция Str добавляет к положительному числу спереди пробел, поэтому Ваш способ не сработал, т.к. у Вас нет листа, имя которого начинается с пробела.


Сообщение отредактировал Karataev - Вторник, 22.03.2016, 21:47
 
Ответить
Сообщение[vba]
Код
Worksheets(CStr(j)).Activate
[/vba]
P.S. функция Str добавляет к положительному числу спереди пробел, поэтому Ваш способ не сработал, т.к. у Вас нет листа, имя которого начинается с пробела.

Автор - Karataev
Дата добавления - 22.03.2016 в 21:43
Roman777 Дата: Вторник, 22.03.2016, 21:46 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
StoTisteg, я бы определил Str as string
а чтобы складывать использовал бы Cint(Str(j))


Много чего не знаю!!!!
 
Ответить
СообщениеStoTisteg, я бы определил Str as string
а чтобы складывать использовал бы Cint(Str(j))

Автор - Roman777
Дата добавления - 22.03.2016 в 21:46
_Boroda_ Дата: Вторник, 22.03.2016, 21:51 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Таа нужно?
[vba]
Код
i = 123
j = i + 1
Worksheets(Trim((j))).Activate
[/vba]
Да даже просто вот так[vba]
Код
Worksheets(j & "").Activate
[/vba]
или[vba]
Код
i = 123
Worksheets(i + 1 & "").Activate
[/vba]
Трим остался от предыдущей конструкции
[vba]
Код
Worksheets(Trim(Str(j))).Activate
[/vba] - ее принцип уже описал Karataev


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТаа нужно?
[vba]
Код
i = 123
j = i + 1
Worksheets(Trim((j))).Activate
[/vba]
Да даже просто вот так[vba]
Код
Worksheets(j & "").Activate
[/vba]
или[vba]
Код
i = 123
Worksheets(i + 1 & "").Activate
[/vba]
Трим остался от предыдущей конструкции
[vba]
Код
Worksheets(Trim(Str(j))).Activate
[/vba] - ее принцип уже описал Karataev

Автор - _Boroda_
Дата добавления - 22.03.2016 в 21:51
RAN Дата: Вторник, 22.03.2016, 21:57 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Worksheets(Format(j, "@")).Activate
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Worksheets(Format(j, "@")).Activate
[/vba]

Автор - RAN
Дата добавления - 22.03.2016 в 21:57
StoTisteg Дата: Вторник, 22.03.2016, 21:58 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
функция Str добавляет к положительному числу спереди пробел

То есть CStr(j) есть то же, что Trim(Str(j))?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
функция Str добавляет к положительному числу спереди пробел

То есть CStr(j) есть то же, что Trim(Str(j))?

Автор - StoTisteg
Дата добавления - 22.03.2016 в 21:58
StoTisteg Дата: Вторник, 22.03.2016, 22:01 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Worksheets(j & "").Activate

Мон блин, сударь, это прекрасно hands


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Worksheets(j & "").Activate

Мон блин, сударь, это прекрасно hands

Автор - StoTisteg
Дата добавления - 22.03.2016 в 22:01
_Boroda_ Дата: Вторник, 22.03.2016, 22:04 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
STR выделяет еще место под знак
Почитайте
https://support.office.com/ru-ru....B515841
[offtop]
У меня есть дома Рислинг и Токай
Так просто сочинять песни


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеSTR выделяет еще место под знак
Почитайте
https://support.office.com/ru-ru....B515841
[offtop]
У меня есть дома Рислинг и Токай
Так просто сочинять песни

Автор - _Boroda_
Дата добавления - 22.03.2016 в 22:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » .Name vs Item: не путаем одно с другим при цифровом значении (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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