任何人都可以帮我找一个优化这段代码的好方法吗?请给我一个很好的建议。
With Selection
.Value = "Apple"
.Font.Bold = True
.Offset(1).Value = "Orange"
.Offset(1).Font.Bold = True
.Offset(2).Value = "Strawberry"
.Offset(2).Font.Bold = True
.Offset(3).Value = "Pear"
.Offset(3).Font.Bold = True
.Offset(4).Value = "Pineapple"
.Offset(4).Font.Bold = True
.Offset(5).Value = "Grape"
.Offset(5).Font.Bold = True
.Offset(6).Value = "Banana"
.Offset(6).Font.Bold = True
.Offset(8).Value = "Durian"
.Offset(8).Font.Bold = True
.Offset(8, 1).Value = "Rambutan"
.Offset(8, 1).Font.Bold = True
.Offset(8, 2).Value = "Dragonfruit"
.Offset(8, 2).Font.Bold = True
.Offset(8, 3).Value = "Mango"
.Offset(8, 3).Font.Bold = True
End With
答案 0 :(得分:3)
为您的水果创建一个源数组。
Dim fruits
fruits = Array("Apple", "Orange", ... , "Mango")
然后使用循环为Range指定值 你需要额外的变量。
Dim n As Long, fruit
With Selection: n = 0
For Each fruit In fruits
.Offset(n) = fruit: n = n + 1
Next
.Resize(n + 1).Font.Bold = True '~~> format in one go
End With
我不知道你是否会认为这个优化得足够好但HTH
顺便说一句,当你分配水果红毛丹时,我没有考虑专栏的转变。
我留给你。它可能需要另一个变量和 IF语句。