Debug.Print не печатает правильное значение переменной - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть макрос, который перемещает некоторые данные в разных таблицах, и я пытался выяснить, почему мой Debug.Print не печатает длинные данные.Он печатает строку, но не печатает длинную.

Приведенный ниже код не выдает сообщение об ошибке, и данные перемещаются так, как я ожидал, однако, когда я пытаюсь использовать оператор print для печати наВсе, что я получаю в немедленном окне, это строковая часть печати. ​​

Я пытался конвертировать в строку, используя CStr() на моем длинном, на тот случай, если возникла проблема с конкатенацией не-строки со строкой без изменений.в результатах.Я попытался просто напечатать длинную саму по себе, и все, что она печатает, это пустая строка в окне «Немедленное».

Мой вопрос такой:

Есть ли причина, по которой мой код не печатаетlong?

Я знаю, что результаты моего MACRO делают именно то, что мне нужно, вручную проверяя каждый шаг с точками останова, но почему Debug.Print не печатает long?

Пример результатов изОтладка. Печать

Last Row for G90_CTR_WS: 
Last Row for L90_CTR_WS: 
Last Row for BU_WB: 
Last Row for rng1: 
Last Row for rng2: 

Код:

On Error GoTo 0
lr_counter = inv_wb.Worksheets(7).Cells(Rows.Count, "A").End(xlUp).Row
Set rng1 = inv_wb.Worksheets(7).Range("A2:G" & lr_counter)
Debug.Print ("Last Row for G90_CTR_WS: " & lr__counter)

lr_counter = inv_wb.Worksheets(6).Cells(Rows.Count, "A").End(xlUp).Row
rng1.Cut Destination:=inv_wb.Worksheets(6).Range("A" & lr_counter + 1)
Debug.Print ("Last Row for L90_CTR_WS: " & lr__counter)

check_for_file = Dir(workbook_directory & "\*backup*")
Set bu_wb = Workbooks.Open(workbook_directory & "\" & check_for_file)

lr_counter = bu_wb.Worksheets(1).Cells(Rows.Count, "B").End(xlUp).Row
Set rng1 = bu_wb.Worksheets(1).Range("B2:B" & lr_counter)
Debug.Print ("Last Row for BU_WB: " & lr__counter)

bu_wb.Close SaveChanges:=False

lr_counter = inv_wb.Worksheets(6).Cells(Rows.Count, "A").End(xlUp).Row
Set rng2 = inv_wb.Worksheets(6).Range("A2:A" & lr_counter)
Debug.Print ("Last Row for rng1: " & lr__counter)

check_for_file = Dir(workbook_directory & "\*vehicle*list*")
Set vl_wb = Workbooks.Open(workbook_directory & "\" & check_for_file)
lr_counter = vl_wb.Worksheets(1).Cells(Rows.Count, "I").End(xlUp).Row
Set rng3 = vl_wb.Worksheets(1).Range("I2:I" & lr_counter)
Debug.Print ("Last Row for rng2: " & lr__counter)

1 Ответ

0 голосов
/ 26 сентября 2018

Положите Option Explicit и посмотрите, где код взрывается.- Параметр Явный

Способ автоматического написания Option Explicit состоит в выборе «Требовать объявления переменной» в VBEditor> Инструменты> Параметры :

enter image description here

В общем, я думаю, что это здесь:

lr_counter = inv_wb.Worksheets(7).Cells(Rows.Count, "A").End(xlUp).Row
Set rng1 = inv_wb.Worksheets(7).Range("A2:G" & lr_counter)
Debug.Print ("Last Row for G90_CTR_WS: " & lr__counter)

lr__counter с 2 _ и объявлено с 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...