Я новичок в разработке VB6 (и Visual Basic в любой форме), и я столкнулся с проблемой. Ниже могут быть лексические ошибки, потому что я отформатировал код так, чтобы он был немного более читабельным внутри поста, но суть вопроса остается. Вот код
Моя проблема заключается в том, что значения, отображаемые вызовами MsgBox (второй набор, относящийся к переменным scrWord и resWord), различаются в зависимости от того, когда я назначаю переменные scrWord и resWord. Если я назначу переменные scrWord и resWord в первом месте, которое не прокомментировано в коде, показанном выше, то в окнах сообщений в нижней части кода будут напечатаны те строки, которые мне не интересны (например, первое окно сообщения выдаст вывод, похожий на «srcws: resColNum: #») или что-то вроде данных мусора. Обратите внимание, что это означает, что переменная scrWord присвоила статическую строку, которую я использовал в предыдущем окне сообщения. Это НИКОГДА не намеченное поведение, и я понятия не имею, как это происходит.
Если, с другой стороны, присваивание выполняется непосредственно перед окнами сообщений, где присваивание переменной комментируется в приведенном выше коде, тогда переменные выводят другое значение, которое несколько больше похоже на ожидаемое, но не совсем (как правило, две переменные абсолютно одинаковы или одна числовая, если ожидается, что обе переменные будут разными альфа-строками).
Я озадачен этой проблемой и считаю, что это как-то связано с вызовами GetData, возвращающими тип данных Variant.
Спасибо,
Evan
Новый код размещен ниже. Все еще не работает.
Dim srcWord As Variant
Dim resWord As Variant
Do While (BinsCol.GetData(grouprownum, 1) = binfromnum And nogroupfound = True)
Dim groupmismatch As Boolean
groupmismatch = False
For j = 1 To FormHyst.GroupList.ListCount
srcWord = sourceWS.Columns(j).GetData(i, 1)
resWord = "hello, world"
MsgBox ("srcws:" & srcWord & vbNewLine &_
"resws:" & resWord & vbNewLine &_
"test:" & (resWord <> srcWord))
Next
Loop
В этом новом коде srcWord и resWord отображают "привет, мир".
Я до сих пор не могу разобраться в этом поведении.