请教一段关于变化行高vba的代码错误点

我想把 C1到C20  D1到D20 的行高根据单元格内的字数变化成相对应的高  
Public Sub 行高()

For i = 1 To 20
For j = 1 To 20

If Len(Range("i,3")) > Len(Range("j,4")) Then  '如果c列内的字数大于d行内的字数,就根据c列单元格内的字数调整行高
Select Case Len(Range("i,3"))
Case 1 To 28  '如果C列内1到28个字
Range("i,3").RowHeight = 38  '行高变为38
Case 29 To 56 '如果C列内29到56个字
Range("i,3").RowHeight = 60 '行高变为60
Case 57 To 84
Range("i,3").RowHeight = 90
Case 85 To 112
Range("i,3").RowHeight = 114
Case 113 To 140
Range("i,3").RowHeight = 146
Case 141 To 168
Range("i,3").RowHeight = 170
End Select
Else    '如果c列内的字数小于d行内的字数,就根据d列单元格内的字数调整行高
Select Case Len(Range("j,4"))
Case 1 To 28  '如果d列内1到28个字
Range("j,4").RowHeight = 38 '行高变为38
Case 29 To 56
Range("j,4").RowHeight = 60
Case 57 To 84
Range("j,4").RowHeight = 90
Case 85 To 112
Range("j,4").RowHeight = 114
Case 113 To 140
Range("j,4").RowHeight = 146
Case 141 To 168
Range("i,3").RowHeight = 170
End Select
End If
Next i
Next j

End Sub

运行这段代码时 提示错误 说: else 少 if  我明明写了if  不知道有什么错误 请教高手
这段代码 还有没有其它错误  请高手指点一下 谢谢 !

错误很多!
你应该养成写程序代码用缩进的格式的习惯,便于检查错误:
如下:
For i = 1 To 20
For j = 1 To 20

If Len(Range("i,3")) > Len(Range("j,4")) Then '如果c列内的字数大于d行内的字数,就根据c列单元格内的字数调整行高
Select Case Len(Range("i,3"))
Case 1 To 28 '如果C列内1到28个字
Range("i,3").RowHeight = 38 '行高变为38
Case 29 To 56 '如果C列内29到56个字
Range("i,3").RowHeight = 60 '行高变为60
Case 57 To 84
Range("i,3").RowHeight = 90
Case 85 To 112
Range("i,3").RowHeight = 114
Case 113 To 140
Range("i,3").RowHeight = 146
Case 141 To 168
Range("i,3").RowHeight = 170
End Select
Else '如果c列内的字数小于d行内的字数,就根据d列单元格内的字数调整行高
Select Case Len(Range("j,4"))
Case 1 To 28 '如果d列内1到28个字
Range("j,4").RowHeight = 38 '行高变为38
Case 29 To 56
Range("j,4").RowHeight = 60
Case 57 To 84
Range("j,4").RowHeight = 90
Case 85 To 112
Range("j,4").RowHeight = 114
Case 113 To 140
Range("j,4").RowHeight = 146
Case 141 To 168
Range("i,3").RowHeight = 170
End Select
End If
Next i
Next j
1.一看:最后两句,循环变量i和j次序搞错了,循环交叉是不行的.
2.我粗读了你的代码,你说设置行高?行高与字的多少应该无关系,应该是根据字的多少设置列宽吧?
3.Range("i,3")的用法也有问题吧?
对单元格的引用,我知道的有两种方法:
(1)Range("A1")是指A1单元格
(2)Cells(1, 1)是指第1行第1列就是A1单元格
供参考,有不对的地方请指正.
温馨提示:答案为网友推荐,仅供参考
相似回答