循环函数只执行一次

时间:2018-02-04 12:35:59

标签: excel-vba loops offset vba excel

下面的代码工作正常,没有错误,它进入一个宏循环文件夹中的文件。自动化数据输入。但是我的循环函数只执行一次。

DoEvents


Worksheets("Data").Activate
'Variable Declarations
Dim IEDepth As Double, DDiv As Double, NoRow As Integer, Irow As Integer, LR As Range, LR2 As Range
Dim IName As String, IDate As Date, rng1 As Range, rng2 As Range
IEDepth = Worksheets("Data").Range("D9")    

DDiv = 0.5
NoRow = IEDepth / DDiv

'Loop only perform once
Do Until Irow = NoRow
'LR.Offset(1, 0).Value = DDiv
Range("F1048576").End(xlUp).Offset(1, 0).Value = DDiv
Range("G1048576").End(xlUp).Offset(1, 0).Value = DDiv
Range("E1048576").End(xlUp).Offset(1, 0).Value = IName
Range("K1048576").End(xlUp).Offset(1, 0).Value = IDate
DDiv = DDiv + 0.5
Irow = Irow + 1
Loop

'Save and Close Workbook
  wb.Close SaveChanges:=True

'Ensure Workbook has closed before moving on to next line of code
  DoEvents

感谢我能得到的所有帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您在此处提供的信息是我们可以做的。

你的循环取决于Irow = Norow停止执行。您需要知道每个循环的每个变量值,以便在此情况为真时进行跟踪(对于第二个循环似乎是这样)。

第一次循环

Irow = 0
IEDepth = D9
DDiv = 0.5
NoRow = D9 / 0.5

很明显,Irow<> Norow在第一个循环,但它是第二个循环Irow = NoRow

第二次循环

Irow = 1
IEDepth = D9
DDiv = 1
NoRow = D9 / 0.5

说,为了Irow = NoRow,NoRow值为1,或者D9值为0.5。

我建议在每个循环中插入以下代码(在Do命令和Loop命令之前的其他命令之后),这样就可以监视每个变量值

MsgBox(Irow & vbCrLf & IEDepth & vbCrLf & DDiv & vbCrLf & NoRow)

不幸的是,没有进一步的信息,我们再也帮不了你了。