簡體   English   中英

VBA Excel中-循環的下一行

[英]vba excel - next row for loop

我做了一個VBA代碼,我想單擊一個按鈕(testing1),以檢查WS“臨時日志”中的范圍A2是否為空,如果是,則從WS“主”中插入范圍H1的值。 但是,當我運行我的代碼時,它將轉到此行。 For r = 2 To .Range("AA65535").End(xlUp).Row

它將end with (Temp log) end with

有人可以解釋為什么代碼不能通過for循環運行嗎?

Sub testing1()

Dim r As Integer    
Dim totalValue As Object

With Worksheets("Main")

     Set totalValue = .Range("H1")

End With

With Worksheets("Temp log")



          For r = 2 To .Range("A65535").End(xlUp).Row

                If IsEmpty(.Cells(r, "A").Value) = True Then

                   .Cells(r, "A").Value = totalValue

                End If

          Next r
end with 

end sub
.Range("A65535").End(xlUp).Row

這將返回工作表中最后一個空行的行號(對於A列)。 如果“臨時日志”中的A2為空,並且其上方的每一行均為空,則FOR循環將如下所示:

For r = 2 to 2

它將精確地迭代0次。

如果A2為空並且其下面的所有內容為空,您想要什么結果? 用您的TotalValue僅填充A2並停止,還是繼續填充A2之下的所有內容直到工作表的底部?

如果您的.Range(#)。End(xlUp).Row在A2或它下面的任何地方都找不到,它將返回1(而不是2),並且您的循環將是

For R = 2 to 1

這將被跳過。 For r = 2 to 2循環將運行一次,r = 2)。

您可能需要定義底部的行,並根據找到的內容,用TotalValue填充A2並停止,或者(如果填充了A2以下的內容)使用循環使用A2填充所有內容,直到最后一行。

或者,如果我錯過了您的意圖,請進一步說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM