Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
0:02
2775
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->
1|2

АвторМакросы в Excel. VBA, Подскажите.
Есть у меня числовая переменная. Допустим берем ее из цикла. Как перевести в теле цикла ее в текстовой формат? Надо это затем что бы при сравнении с переменной текстового вида, условие срабатывало.


Для примера:
For i=1 To 10

/здесь надо перевести i в текстовой вид/

If i=kriterij Then траляля


Все дела в том что если будем писать - If i="1" Then траляля например, все будет работать, но как тогда зациклить это условие?
а i=1 и i=ggg
можно разделить на i=1 и j=ggg ?
For i=1 To 10

/здесь надо перевести i в текстовой вид/

If i=kriterij Then траляля


а цикл не зациклится? О_о
для erros:

а цикл не зациклится? О_о вроде вернее так..
If kriterij=i Then траляля


В ячейке kriterij содержится число, но в виде символа. ( Получаю разрывая многоциферное число на цифры. Пример 12345 число..и в переменной kriterij будут по очереди 1, 2, 3, 4, 5 но символами.) Что бы проверить условие есть ли среди всех этих цифр число i надо либо прописывать

If kriterij=i Then траляля но не сработает потому что даже если и там и там будут одинаковые числа, то форматы не позволят сравнить. либо как то по другому собирать цикл
а полное тз можно прочитать?
или хотя бы твой код глянуть?
должна быть функция, переводящая из формата в формат типа
if i=integer(j) then
AVBel спроси - он хорошо в этом шарит=)
функциё: БАТТЕКСТ
У меня есть таблица 100 на 100 допустим. В ней цифры..либо единичные, либо двойные,тройные и т.д. Требуется в каждом ряду посчитать сколько встречается единиц,двоек,троек и т.д. Вся проблема была в разделении многоциферных чисел на символы. В принипе вот код

For j = 1 To 100
schetchik = 0
For i = 1 To 100
dannoe = Worksheets("Лист1").Cells(i, j)
chislosimvolov = Len(dannoe)
For k = 1 To chislosimvolov
simvol = Left(Right(dannoe, chislosimvolov - k + 1), 1)
If simvol = "1" Then schetchik = schetchik + 1
Next k
Next i
Worksheets("Лист2").Cells(1, j) = schetchik
Next j

Все работает и считает 1 в столбцах, но мне надо зациклить этот код на проверку остальных чисел. (повторять 9 раз с разными числами как то топорно слишком)

А поставить в эту строку переменную вместо 1 не получается:(
If simvol = "1" Then schetchik = schetchik + 1
функциё: БАТТЕКСТ

должна быть функция, переводящая из формата в формат типа
if i=integer(j) then



Что то типа такого и думаю. Но как правильно прописать не знаю..Сами библиотеки надо выискивать
числа в таблице обязательно текстовые?

решений много, 1 что пришло в голову - сделать 10 разных счетчиков
сделать 10 разных счетчиков Пока что только так и придумал)). Еще вариант функциями прописать..но все равно 10 раз писать одно и тоже.

числа в таблице обязательно текстовые? Изначально числовой формат, но переменная simvol насколько понимаю имеет уже текстовой формат.
мог бы те написать) но - лень)
бум учительствовать...)
исчо один подсказк.
используй конструкцию DO Case да десять счетчиков...
хоть это и тупо:)))
но рас надо учиццо...
есять счетчиков... пока так и сделал). Думал просто уменьшить число строчек:)
для darksetik:
Все дела в том что если будем писать - If i="1" Then траляля например, все будет работать, но как тогда зациклить это условие?
В VBA я не силен, но что мешает обратно возвращать переменную i в числой вид после проверки условия?
что мешает обратно возвращать переменную i в числой вид
Наоборот. Нужно правильно прописать переход i в текстовой вид. Ибо сравниваться с символом будет, а не числом.
+15
Либо simvol переменную перевести в число..
В VBA я не силен, но что мешает обратно возвращать переменную i в числой вид после проверки условия?
или сразу сравнивать функции.

сделать 10 разных счетчиков
нафига?
достаточно 3 за глаза.

я точно не помню функцию в вба, но куда проще считывать данные и переводить их сразу в строку и работать с ней же. аскикод "0" = 48, "9" = 57, если значение

if (asc(s[i])>=48) and (asc(s[i])<=57) then
schetchik = schetchik + 1 ;
asc - абстрактная функция ибо я названия точно не помню.
s - сама строка
i - номер символа с которым работаем.
asc - абстрактная функция ибо я названия точно не помню.
chr()
Наоборот. Нужно правильно прописать переход i в текстовой вид. Ибо сравниваться с символом будет, а не числом.
Ммм.. а если прописать еще одну переменную, например, "s" и присваивать ей значение "i" при каждой итерации и переводить ее в символьный формат? Тогда переменная "i" будет цифровой, а переменная "s" символьной.

Хотя мне кажется должна быть какая-то функция, которая переводит переменную в тот или иной формат. Хотя могу ошибаться. На php таких проблем нет :)
chr() эврика..то, что надо))
1|2
К списку тем
2007-2025, онлайн игры HeroesWM