Автор | Макросы в 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() эврика..то, что надо)) |