运行程序提醒出现"实时错误'6'"是什么原因? 我把文本框的内容输出到打印机打印,当运行到 If Printer.TextWidth(mbsgjg) < 8600 Then 这段代码时,总是出现"实时错误'6'",可是当我在文本框中少输入几个汉字是,上面的错误又没有了,是什么原因? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是一个溢出错误,估计是你的Printer边界溢出了?? mbsgjg为数据类型,如Dim mbsgjg As String 出错时mbsgjg是什么值,加 debug.print mbsgjg 查看一下 在立即窗口运行的结果:debug.print mbsgjg 经我队调查证实,在此事故中,刘芬驾驶湘HJ596学号北京现代教练车注意力不集中妨碍安全驾驶,驾驶车辆驶入逆行,驾驶车辆超限速行驶,其行为违反了《中华人民共和国道路交通安全法》第三十五条以及《中华人民共和国道路交通安全法实施条例》第四十五条前款、第六十二条第(三)项之规定;陈志才驾驶湘H59536号车辆超限速行驶,其行为违反了《中华人民共和国道路交通安全法实施条例》第四十五条前款之规定。根据《中华人民共和国道路交通安全法实施条例》第九十一条:" 公安机关交通管理部门应当根据交通事故当事人的行为对发生交通事故所起的作用以及过错的严重程度,确定当事人的责任。及《道路交通事故处理程序规定》第四十六条前款(二)项:"因两方或两方以上当事人的过错发生道路交通事故的,根据其行为对事故发生的作用以及过错的严重程度,分别承担主要责任、同等责任和次要责任。"之规定认定: 加个val试试If val(Printer.TextWidth(mbsgjg))<8600 then 改成If Printer.TextWidth(mbsgjg) < 8600& Then 再试试要不就是mbsgjg的长度太长了? val函数的作用是返回一个数据,而If Printer.TextWidth(mbsgjg) < 8600 Then 计算的是打印机打印的文本字符串的宽度,超过8600会在下一行打印的. 改成If Printer.TextWidth(mbsgjg) < 8600& Then还是不行呀?我用mbsgjg字符串打印另一个比这更长的文本也没问题呀? Printer.TextWidth检查下它的数据类型。 改在If val(Printer.TextWidth(mbsgjg)) <8600 then还是没用 debug.print Printer.TextWidth(mbsgjg) TextWidth 内部其实是先用像素进行计算的,使用的是 Integer 类型,超过 32767 就会出现溢出错误。通常纸张没有这么宽(200DPI 就有 4m 多),所以先判断一下字符串长度,如果超过一定值(比如 1000)肯定会折行,不用调用 TextWidth 去计算打印宽度了。 不用试了,TextWidth 计算结果与当前字体有关。lcsfxs 的字体大所以马上溢出了,我用了 String(4275,"W") 才溢出。lcsfxs 这种字体下判断一下超过 200 个字符就可以直接认为有折行了。 lz用什么字体这么大?光用字数判断折行,因为字体等原因,不准确,效果不好建议先判断字数,截取TextWidth能承受的字数(保证比1行多),截取后再用TextWidth判断 我用的是: Printer.Font.Name = "仿宋_GB2312" Printer.Font.Size = 14 Printer.Font.Bold = False不行吗? 高明,我改成Printer.Font.Size = 10程序就好的. vb 连接ftp 如何将一个繁体字的txt文件转换为简体字的txt文件? 请教一个BarCode 生成问题 程序如何模拟操作系统带的虚拟专用网络连接? 怎样根据传人的参数,创建不同的进程标识? 关于读取文本文件到数组? 怎么没有人知道这个问题? 如何判断Win8 x64文件夹有没有写入权限? 报表问题,用DATAREPORT如何实现动态报表! 看看吧 好奇帖,大家午休都在做什么呢? 求教:vb 采集网页数据的方法和思路
Dim mbsgjg As String
debug.print mbsgjg
经我队调查证实,在此事故中,刘芬驾驶湘HJ596学号北京现代教练车注意力不集中妨碍安全驾驶,驾驶车辆驶入逆行,驾驶车辆超限速行驶,其行为违反了《中华人民共和国道路交通安全法》第三十五条以及《中华人民共和国道路交通安全法实施条例》第四十五条前款、第六十二条第(三)项之规定;陈志才驾驶湘H59536号车辆超限速行驶,其行为违反了《中华人民共和国道路交通安全法实施条例》第四十五条前款之规定。根据《中华人民共和国道路交通安全法实施条例》第九十一条:" 公安机关交通管理部门应当根据交通事故当事人的行为对发生交通事故所起的作用以及过错的严重程度,确定当事人的责任。及《道路交通事故处理程序规定》第四十六条前款(二)项:"因两方或两方以上当事人的过错发生道路交通事故的,根据其行为对事故发生的作用以及过错的严重程度,分别承担主要责任、同等责任和次要责任。"之规定认定:
If val(Printer.TextWidth(mbsgjg))<8600 then
If Printer.TextWidth(mbsgjg) < 8600& Then
再试试
要不就是mbsgjg的长度太长了?
我用mbsgjg字符串打印另一个比这更长的文本也没问题呀?
检查下它的数据类型。
lcsfxs 这种字体下判断一下超过 200 个字符就可以直接认为有折行了。
光用字数判断折行,因为字体等原因,不准确,效果不好
建议先判断字数,截取TextWidth能承受的字数(保证比1行多),截取后再用TextWidth判断
Printer.Font.Name = "仿宋_GB2312"
Printer.Font.Size = 14
Printer.Font.Bold = False
不行吗?