.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
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Ответить
Сообщение У меня есть дома Рислинг и Токай книга 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 добавляет к положительному числу спереди пробел, поэтому Ваш способ не сработал, т.к. у Вас нет листа, имя которого начинается с пробела.
[vba]Код
Worksheets(CStr(j)).Activate
[/vba] P.S. функция Str добавляет к положительному числу спереди пробел, поэтому Ваш способ не сработал, т.к. у Вас нет листа, имя которого начинается с пробела. Karataev
Сообщение отредактировал 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
Много чего не знаю!!!!
Ответить
Сообщение 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
Таа нужно? [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_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
[vba]Код
Worksheets(Format(j, "@")).Activate
[/vba]
[vba]Код
Worksheets(Format(j, "@")).Activate
[/vba] RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение [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
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Ответить
Сообщение функция 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
Мон блин, сударь, это прекрасно
Worksheets(j & "").Activate
Мон блин, сударь, это прекрасно StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Ответить
Сообщение Worksheets(j & "").Activate
Мон блин, сударь, это прекрасно Автор - StoTisteg Дата добавления - 22.03.2016 в 22:01
_Boroda_
Дата: Вторник, 22.03.2016, 22:04 |
Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить