VBA Long 变量在 Do While 循环期间不断重置?
VBA Long variable keeps resetting during a Do While loop?
我正在 Excel 中编写一些代码来扫描一行中的特定值,然后获取该值的单元格地址。
lngCol = 0
search_start = "D1"
Do While current_week <> week_one
lgnCol = lngCol + 1
current_week = Range(search_start).Offset(0, lngCol)
Loop
wk_one_col = current_week.Address
Debug.Print wk_one_col
代码大部分工作正常,我没有收到任何错误,但 lngCol
变量没有按应有的方式递增。
在循环中,lngCol
在第一个循环后始终为1,lngCol+1
是在变量的原始值(即零)上加1。
我不明白的是,每个循环都应该递增它。所以第一个循环,它将 1 加到零,将 lngCol
设置为 1。第二个循环,它将另一个 1 加到 1,使其成为 2.
我有另一个基于这个想法的功能,它按预期工作。每个循环 lngCol
变量递增 1。
我知道我知道我需要变量本身超出循环范围,否则它每次都会将自身重置为零。我哪里错了?
感谢所有发表评论的人。这里的问题是我在递增行中拼错了变量名:
lgnCol = lngCol + 1
应该是:
lngCol = lngCol + 1
我正在 Excel 中编写一些代码来扫描一行中的特定值,然后获取该值的单元格地址。
lngCol = 0
search_start = "D1"
Do While current_week <> week_one
lgnCol = lngCol + 1
current_week = Range(search_start).Offset(0, lngCol)
Loop
wk_one_col = current_week.Address
Debug.Print wk_one_col
代码大部分工作正常,我没有收到任何错误,但 lngCol
变量没有按应有的方式递增。
在循环中,lngCol
在第一个循环后始终为1,lngCol+1
是在变量的原始值(即零)上加1。
我不明白的是,每个循环都应该递增它。所以第一个循环,它将 1 加到零,将 lngCol
设置为 1。第二个循环,它将另一个 1 加到 1,使其成为 2.
我有另一个基于这个想法的功能,它按预期工作。每个循环 lngCol
变量递增 1。
我知道我知道我需要变量本身超出循环范围,否则它每次都会将自身重置为零。我哪里错了?
感谢所有发表评论的人。这里的问题是我在递增行中拼错了变量名:
lgnCol = lngCol + 1
应该是:
lngCol = lngCol + 1