![](/img/trans.png)
[英]EXCEL VBA - Loop through cells in a row, if not empty, copy cell value into another row until next row not empty
[英]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.