这是一个数据源。
我想做的是:
C2&"-"&D2
为此,我编写的代码首先检查单元格 D2 ,如果是empty
则添加 9000 。然后它在 B2 中连接 D2 和 E2 (C2&"-"&D2
)。然后在 G2 中添加 E2 和 F2 的值。然后它转到下一行并选择 D3 并检查它是否为empty
。代码超过6000行。这是代码:
Range("D2").Select
For Count = 1 To (CellsCount - 1)
If IsEmpty(ActiveCell) Then ActiveCell.Value = 9000
ActiveCell.Offset(0, -2).Select
ActiveCell = Cells(1 + Count, 3) & "-" & Cells(1 + Count, 4)
ActiveCell.Offset(0, 5).Select
ActiveCell = Cells(1 + Count, 5) + Cells(1 + Count, 6)
ActiveCell.Offset(1, -3).Select
Next Count
代码运行大约需要10分钟。如果您能建议我更快地运行代码,我将不胜感激。
由于
答案 0 :(得分:3)
立即对所有行执行所有操作,无需循环。
with activesheet
with .range(.cells(2, "D"), .cells(CellsCount , "D"))
.specialcells(xlcelltypeblanks) = 9000
.offset(0, -2).formula = "=c2&""-""&d2"
.offset(0, -2) = .offset(0, -2).value2 'optional
.offset(0, 3).formula = "=sum(e2, f2)"
.offset(0, 3) = .offset(0, 3).value2 'optional
end with
end with
答案 1 :(得分:1)
不要使用select / offset。喜欢使用单元格(行,列)。
For Count = 1 To (CellsCount - 1)
If IsEmpty(cells(count,4)) Then cells(count,4)= 9000
cells(count,2)= Cells(1 + Count, 3) & "-" & Cells(1 + Count, 4)
cells(count,7)= Cells(1 + Count, 5) + Cells(1 + Count, 6)
Next Count