我有一个由for循环运行的列。它们之间有两行空格,当第一行触及另一行时(因为它检查值是否为"")它会停止。
看起来像这样:
-First person
-Second person
它应该是这样的:
-First person
-First person
-First person
-First person
-First person
-Second person
-Second person
-Second person
-Second person
代码:
Sub FyllUtKjoenn()
Dim sluttrad As Integer
sluttrad = Cells(3000, 1).End(xlUp).Row
For x = 5 To sluttrad
If Cells(x, 1).Value = "" Then
Cells(x, 1).Value = Cells(x - 1, 1).Value
End If
Next x
End Sub
答案 0 :(得分:1)
我认为你根本不需要循环;只是一点点数学。虽然您不会注意到工作表的一小部分,但是通过单个单元格循环的较大部分会降低您的速度。
Sub fill_Intermediate()
Dim rw1 As Long, rw2 As Long
With Worksheets("sheet5")
rw1 = 5
rw2 = .Cells(Rows.Count, 1).End(xlUp).Row
'alternate
'rw2 = .Cells(rw1, 1).End(xlDown).Row
.Cells(rw1, 1).Resize(CLng((rw2 - rw1) / 2) + 1, 1).FillDown
.Cells(rw2, 1).Offset(-CLng((rw2 - rw1) / 2) + 1, 0).Resize(CLng((rw2 - rw1) / 2), 1) = _
.Cells(rw2, 1).Value
End With
End Sub
答案 1 :(得分:0)
sluttrad始终为1,因此请更改sluttrad = Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
。试试
UPDATE Transaction t
SET SubTotal = (SELECT SUM(UnitPrice * QuantitySold) FROM TransactionRecord tr WHERE tr.TransactionId = t.ID);