powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программка не распознает стринг
10 сообщений из 10, страница 1 из 1
Программка не распознает стринг
    #37663567
Szemmel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дорогие коллеги. Прошу помочь разобраться..

Есть программка:

Sub LISTO()

Dim m As Variant
Dim tempSN As String

Dim kolvo As Integer

For i = 1 To 100000
If Cells(i, 1) = "" Then
m = m + 1
Exit For

Else
m = m + 1

End If
Next

For i = 2 To m
If Not IsEmpty(Cells(i, 15)) Then
tempSN = Range("i15").Text
'MsgBox TypeName(tempSN)


For j = 1 To Len(tempSN)

If "," = Mid(tempCN, j, 1) Then
MsgBox "OK"
kolvo = kolvo + 1
End If
Next j
MsgBox kolvo

If kolvo > 1 Then

For t = 2 To kolvo
Rows(i).Select
Selection.Insert Shift:=xlDown
Next t
End If
End If

Next

End Sub



Тип данных - стринг.... Железобетонно в ячейках содержатся через запятую символы. Переменная kolvo никогда не выходит из нуля.. В чем может быть дело?

Я пробил на EXACT запятые, это символ код-44, все равно не хочет увеличивать kolvo...


БОльшое спасибо, ребята!
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663631
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начнем с оформления кода
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Sub LISTO()

Dim m As Variant
Dim tempSN As String

Dim kolvo As Integer

For i = 1 To 100000
    If Cells(i, 1) = "" Then
        m = m + 1
        Exit For
        
    Else
        m = m + 1
        
    End If
Next

For i = 2 To m
    If Not IsEmpty(Cells(i, 15)) Then
        tempSN = Range("i15").Text
        'MsgBox TypeName(tempSN)
        
       
            For j = 1 To Len(tempSN)

                If "," = Mid(tempCN, j, 1) Then
                MsgBox "OK"
                    kolvo = kolvo + 1
                End If
            Next j
            MsgBox kolvo
            
            If kolvo > 1 Then
            
                For t = 2 To kolvo
                    Rows(i).Select
                    Selection.Insert Shift:=xlDown
                Next t
            End If
    End If

Next

End Sub
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663637
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SzemmelЕсть программка: ........ В чем может быть дело?
теперь хотелось бы услышать,в чем проблема
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663643
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, нашел ошибку
читаем FAQ
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663667
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как узнать количество запятых в строке без всякого цикла:
Код: vbnet
1.
Count = Len(Str) - Len(Replace(Str, ",", "")
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663671
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тут:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
For i = 1 To 100000
    If Cells(i, 1) = "" Then
        m = m + 1
        Exit For
        
    Else
        m = m + 1
        
    End If
Next

нужна переменная m? Она, фактически, дублирует i
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663679
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЗачем тут:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
For i = 1 To 100000
    If Cells(i, 1) = "" Then
        m = m + 1
        Exit For
        
    Else
        m = m + 1
        
    End If
Next

нужна переменная m? Она, фактически, дублирует iА в принципе, вместо этого всего можно использовать одну строку:
Код: vbnet
1.
m = Range("A1").End(xlDown).Column
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663681
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это
Код: vbnet
1.
2.
Rows(i).Select
Selection.Insert Shift:=xlDown

можно заменить на
Код: vbnet
1.
Rows(i).Insert Shift:=xlDown
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37663821
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> А, нашел ошибку

Я даже не буду ставить ничего ставить на отсуствие Option Explicit

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Программка не распознает стринг
    #37667015
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверняка автор уже нашёл, что tempSN и tempCN - разные переменные, потому и 0 всегда.
Код: vbnet
1.
2.
3.
4.
5.
For j = 1 To Len(tempSN)
                If "," = Mid(tempCN, j, 1) Then
                MsgBox "OK"
                    kolvo = kolvo + 1
                End If



И плохая манера, не инициализировать счётчики перед циклом.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программка не распознает стринг
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]