【发布时间】:2020-12-07 15:06:35
【问题描述】:
我的以下代码似乎无法正常工作。
如果我删除 lastquoterow 并将其更改为 A13:A250 则它可以工作,但它会减慢代码速度,因为它必须遍历整个范围并检查它是否需要调整大小(因为没有数据还存在进一步向下,意味着整个范围将被调整)。这也会导致一些视觉问题,因为它会导致稍后在后续代码中插入的行具有比所需更宽的间距。
我也不能让它调整 A1-A12 的大小,因为这是我的标题范围必须保持静态。我试图告诉它从我的范围开始的 A13 开始,如果是,请转到最后使用的行行大小为< 21,将高度设置为21。然后我的下一阶段代码开始并插入更多处理合并单元格等的数据,这些数据有自己的代码来设置其行高并且不能被弄乱。
我在搞砸什么?
Dim lastquoterow
lastquoterow = quote1.Columns("A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
For Each c In Range("A13" & lastquoterow)
If c.RowHeight < 21 Then
c.RowHeight = 21
End If
Next
【问题讨论】:
-
"A13:A" & lastquoterow -
我不在电脑前,但是这个
Range("A13" & lastquoterow)可以改成这个Range("A13:A" & lastquoterow)。您的代码中还有其他需要调整的内容 -
@BigBen 添加第二个
A就成功了。有时是简单的事情让你搞砸了。 -
@Tmyers - 如果你只这样做 -
Range("A13:A" & lastquoterow),那么很可能有一天代码会因错误 1004 而爆炸。为了省去麻烦,请阅读stackoverflow.com/questions/10714251/… 或使用quote1.Range("A13:A" & lastquoterow) -
@Vityata 这很有意义,因为它有一天会变成核,然后出去。我尝试了您的第二种方法,它有效并且比以前快得多。我将始终加快速度,因为我的其余代码效率极低且速度极慢。希望有一天能在我学习的过程中加快速度。感谢您的洞察力和帮助!
标签: excel vba row-height