EXCEL VBA编辑器运行结果和控件运行结果不一致
今天用VBA Application.WorksheetFunction.VLookup编写了一段程序,在编辑器里面run结果没有任何问题。但是把sub assign给控件以后,控件的运行结果不同,找不出任何原因。
程序如下:
For a = 1 To 7
If ThisWorkbook.Sheets(1).Cells(a, 2).Value = 1 Then
Column_number = ThisWorkbook.Sheets(1).Cells(a, 3).Value
For i = Row_title + 1 To Range("B1048576").End(xlUp).Row
On Error Resume Next
target_name = ThisWorkbook.Sheets(1).Cells(i, 2).Value
Apply_Name = Application.WorksheetFunction.VLookup(target_name, Sheets(2).Range("A:Z"), Column_number, False)
ThisWorkbook.Sheets(1).Cells(i, a + 2) = Apply_Name
Apply_Name = ""
Next
End If
在编辑器里面点击运行,出来的vlookup结果完全正常,遇到无匹配值返回空,大概类似如下结果:
a 123 456
b
c 789 1011
d 1213 1415
但是我把sub assign给控件以后,显示出来的运行结果只有第一行有数据,C行之后的数值没有的,如下:
a 123 456
b
c
d
然后我就把c的目标值复制到a的下面,点击控件运行的结果,如下:
a 123 456
c 789 1011
b
d
所以经过我的反复尝试,就感觉当控件运行的时候,一旦vlookup运行到找不到匹配的目标值时,就直接跳出了里面的for循环,但是外面的for循环还是ok的,毕竟两列数据都能v到
反复更改了vba程序,都是编辑器运行没有任何问题,但是一旦通过控件运行就是如上面的结果,感觉已经不是程序写的问题了,不知道哪位可以指点迷津一下,谢谢!