2016-08-04 84 views
1

我相对较新的VBA。我试图循环遍历一个表,并通过循环每次拉一个不同的值。单元值只读通过循环第一次工作

Sub Macro3() 
    Dim i As Integer 
    Windows("CC_1000H.xlsx").Activate 
    Sheets("CC_1000H").Select 

    Dim Count_Accounts As Integer 
    Dim NewLine As Integer 

    Count_Accounts = Worksheets("Sheet1").Cells(4, "H").Value 
    i = 0 
    Do Until i = Count_Accounts 
     i = i + 1 
     NewLine = Worksheets("Sheet1").Cells(i + 1, "F").Value 
     'Rows("4:4").Select Rows(NewLine).Select 
     '(More code) 
    Loop 
End Sub 

第一次通过这个循环,代码工作正常。第二次通过Worksheets(“Sheet1”)的值。Cells(i + 1,“F”)。Value是空的,NewLine是0.它似乎并不重要,我如何引用单元格值,是甚至是我使用我。它不会再读取一个单元格。

有没有人知道我在做什么错在这里?

感谢

+0

什么是进入'做Until'循环之前'i'初始值?你在F列的所有行('F2','F3','F4'等等)中都有值吗?因为您每次进入循环时都将行数加1推进 –

+0

这不能与提供的代码一起复制。你能发布整个程序吗? – Comintern

+0

确实。还有什么是Count_Accounts?我们需要看到原来的作业。 – Parfait

回答

0

希望你找这个

Sub Macro3() 
    Dim i As Long 
    Windows("CC_1000H.xlsx").Activate 
    Sheets("CC_1000H").Select 
    Dim Count_Accounts As Long 
    Dim NewLine As Long 
    Count_Accounts = Worksheets("Sheet1").Range("H" & Rows.Count).End(xlUp).Row 
    i = 0 
    Do Until i = Count_Accounts 
     i = i + 1 
     NewLine = Worksheets("Sheet1").Range("F" & i + 1).Value 
    Loop 
End Sub 
+0

同样的问题。它在循环中第一次运行,但是第二次运行“Worksheet(”Sheet1“)。范围(”F“和i + 1).Value”为空,Newline为0。 –