代码之家  ›  专栏  ›  技术社区  ›  Mike - SMT

调试。打印未打印正确的变量值

  •  0
  • Mike - SMT  · 技术社区  · 6 年前

    我有一个宏,可以在不同的电子表格中移动一些数据,我一直在试图找出 Debug.Print 没有打印长数据。它打印字符串,但不会打印长字符串。

    下面的代码不会产生错误消息,数据也会像我预期的那样移动,但是当我尝试使用print语句打印到立即窗口时,我得到的只是打印的字符串部分。

    我试着用 CStr()

    我的代码有没有理由不打印长的?

    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 回复  |  直到 6 年前
        1
  •  2
  •   Vityata    6 年前

    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表示。