powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA переменные принимают рандомные значения (я в шоке)
2 сообщений из 2, страница 1 из 1
VBA переменные принимают рандомные значения (я в шоке)
    #36788784
Neirfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, я не пойму что происходит.
Переменная cnn1 = LTrim(Str(rs.Fields.Item(1))) после этого момента по дебагу если смотреть принимает случайные значения к примеру "???????R", а в последнем случае kkk1 приравнялось к set_filial и стало равно "PF". Отчего так в памяти скачут значения? Хотя выше я объявлял cnn и cnn1 как string. И на выходе я имею где ss = что вместо cnn1='3' (это то число, которое мне нужно, оно выбирается изначально из запроса cnn = LTrim(Str(rs.Fields.Item(0)))), я получаю cnn1='PF'. Кто встречался с такими багами?


kkk1 = cnn1 <-- это я сделал для того, чтобы до формирования ss строки - доживала значение переменной cnn1. Иначе с момента присвоения cnn1="1" скажем, до строки ss= в этот момент cnn1 равен абрекадабре.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    For i = k To  65535  
       If InStr( 1 , wssd.ActiveSheet.Cells(i,  1 ), "ИТОГО") >  0  Or wssd.ActiveSheet.Cells(i,  1 ) = "" Or Mid(wssd.ActiveSheet.Cells(i,  1 ),  1 ,  1 ) = "*" Then Exit For
       For b =  1  To max_dd 
        kmm = wssd.ActiveSheet.Cells(k - maxcolumn -  1 , b)
        If kmm Is Null Then kmm = Str(wssd.ActiveSheet.Cells(k - maxcolumn -  1 , b))
        rs.Open "select name_id,name_id2 from column_name where table_id=" + Str(table_id) + " and name='" + LTrim(kmm) + "'", cn
        cnn = LTrim(Str(rs.Fields.Item( 0 )))
        cnn1 = LTrim(Str(rs.Fields.Item( 1 )))
        kkk1 = cnn1
        rs.Close
        set_filial = "PF"
        date_time = Date

        wss = wssd.ActiveSheet.Cells(i, b)
        If wss Is Null Then wss = LTrim(Str(wssd.ActiveSheet.Cells(i, b)))
        ss = "insert into table_value (filial,date_time,table_name_id, column_name_id,value,column_name_id2) values ('" + set_filial + "'," + "'" + Str(Date) + "'" + "," + LTrim(Str(table_id)) + "," + cnn + "," + "'" + wss + "'" + "," + kkk1 + ")"
        cn.Execute ss
        
       Next b
    Next i
...
Рейтинг: 0 / 0
VBA переменные принимают рандомные значения (я в шоке)
    #36789108
Neirfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот это фокус.. Нашел.
Переменная i типа integer, а я ей поставил значение в цикле 65535 и все переменные, которые внутри цикла принимали хаотичные значения.
Однако раньше при перегрузке переменной excel возмущался, в данном случае просто тихо подлячил. Будьте бдительны.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA переменные принимают рандомные значения (я в шоке)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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