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

[复制链接]
查看11 | 回复1 | 2011-10-31 12:08:05 | 显示全部楼层 |阅读模式
我想把C1到C20D1到D20的行高根据单元格内的字数变化成相对应的高
PublicSub行高()

Fori=1To20
Forj=1To20

IfLen(Range(\"i,3\"))Len(Range(\"j,4\"))Then\'如果c列内的字数大于d行内的字数,就根据c列单元格内的字数调整行高
SelectCaseLen(Range(\"i,3\"))
Case1To28\'如果C列内1到28个字
Range(\"i,3\").RowHeight=38\'行高变为38
Case29To56\'如果C列内29到56个字
Range(\"i,3\").RowHeight=60\'行高变为60
Case57To84
Range(\"i,3\").RowHeight=90
Case85To112
Range(\"i,3\").RowHeight=114
Case113To140
Range(\"i,3\").RowHeight=146
Case141To168
Range(\"i,3\").RowHeight=170
EndSelect
Else\'如果c列内的字数小于d行内的字数,就根据d列单元格内的字数调整行高
SelectCaseLen(Range(\"j,4\"))
Case1To28\'如果d列内1到28个字
Range(\"j,4\").RowHeight=38\'行高变为38
Case29To56
Range(\"j,4\").RowHeight=60
Case57To84
Range(\"j,4\").RowHeight=90
Case85To112
Range(\"j,4\").RowHeight=114
Case113To140
Range(\"j,4\").RowHeight=146
Case141To168
Range(\"i,3\").RowHeight=170
EndSelect
EndIf
Nexti
Nextj

EndSub

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

使用道具 举报

千问 | 2011-10-31 12:08:05 | 显示全部楼层
错误很多!
你应该养成写程序代码用缩进的格式的习惯,便于检查错误:
如下:
Fori=1To20
Forj=1To20

IfLen(Range(\"i,3\"))Len(Range(\"j,4\"))Then\'如果c列内的字数大于d行内的字数,就根据c列单元格内的字数调整行高
SelectCaseLen(Range(\"i,3\"))
Case1To28\'如果C列内1到28个字
Range(\"i,3\").RowHeight=38\'行高变为38
Case29To56\'如果C列内29到56个字
Range(\"i,3\").RowHeight=60\'行高变为60
Case57To84
Range(\"i,3\").RowHeight=90
Case85To112
Range(\"i,3\").RowHeight=114
Case113To140
Range(\"i,3\").RowHeight=146
Case141To168
Range(\"i,3\").RowHeight=170
EndSelect
Else\'如果c列内的字数小于d行内的字数,就根据d列单元格内的字数调整行高
SelectCaseLen(Range(\"j,4\"))
Case1To28\'如果d列内1到28个字
Range(\"j,4\").RowHeight=38\'行高变为38
Case29To56
Range(\"j,4\").RowHeight=60
Case57To84
Range(\"j,4\").RowHeight=90
Case85To112
Range(\"j,4\").RowHeight=114
Case113To140
Range(\"j,4\").RowHeight=146
Case141To168
Range(\"i,3\").RowHeight=170
EndSelect
EndIf
Nexti
Nextj
1.一看:最后两句,循环变量i和j次序搞错了,循环交叉是不行的.
2.我粗读了你的代码,你说设置行高?行高与字的多少应该无关系,应该是根据字的多少设置列宽吧?
3.Range(\"i,3\")的用法也有问题吧?
对单元格的引用,我知道的有两种方法:
(1)Range(\"A1\")是指A1单元格
(2)Cells(1,1)是指第1行第1列就是A1单元格
供参考,有不对的地方请指正.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行