vb一个小百鸡问题vb

502 Bad Gateway
502 Bad Gateway小白,自做了一个小VB,遇到难题了
阅读权限10
在线时间 小时
试过了,虽然代码还不怎么理解,但很有效,很厉害! 非常谢谢!
阅读权限10
在线时间 小时
出了问题了,编译后如下:
Option Explicit
Dim c() As Variant
Private Sub CommandButton1_Click()
CommandButton1.Font.Size = &12&
If Range(&F2&) && 0 Then
'Serial Number
Range(&F2:F6&).Select
Selection.Copy
Worksheets(&ESR1.0 Corr&).Range(&C12:C16&).PasteSpecial
'==================================================================
'2035 Verify Temp1 Thermistor
'Sub Temp()
For Each c In [$a$2:$o$o2]
& & If InStr(c, &2035 Verify Temp1 Thermistor&) & 0 Then
& && &&&arr = c.Offset(0, 1).Resize(5, 1)
& & End If
Sheets(&ESR1.0 Corr&).[d12].Resize(UBound(arr)) = arr
(100.46 KB, 下载次数: 0)
21:34 上传
阅读权限10
在线时间 小时
&&&&&&&&&&&&&&&&&&&&&
原来有个问题说变量没有设定,我照网上的加了
Dim c() As Variant
后面又出来这个问题,不知道怎么改了
阅读权限70
在线时间 小时
Dim c As Range
阅读权限70
在线时间 小时
原来有个问题说变量没有设定,我照网上的加了
Dim c() As Variant
后面又出来这个问题,不知道怎么改了
好厉害,自己套了好几组数据呢。
阅读权限70
在线时间 小时
试过了,虽然代码还不怎么理解,但很有效,很厉害! 非常谢谢!
因为我懒,所以,就像用比较少的代码,不想多打字
常规是先赋值给数组,然后数组循环查找 2035.。。。接着锁定目标区域,最后写入数据。
阅读权限10
在线时间 小时
谢谢老师,刚才的问题解决了,又碰到一个问题:
我给的五个芯片下面的2035位置不同,但VBA里面没有分别出来,我就加了一行,可是不能运行,不知道怎么解决
Sub db() 'bajifeng
For Each c In [a2:bb2]
& & If InStr(c, &2035 Verify Temp1 Thermistor&) & 0 Then
& && &&&arr = c.Offset(0, 1).Resize(3, 1)
& & End If
Sheets(&ESR1.0 Corr&).[d12].Resize(UBound(arr)) = arr
For Each d In [a5:bb5]
& & If InStr(d, &2035 Verify Temp1 Thermistor&) & 0 Then
& && &&&arr = d.Offset(0, 1).Resize(2, 1)
& & End If
Sheets(&ESR1.0 Corr&).[d15].Resize(UBound(arr)) = arr
(150.7 KB, 下载次数: 0)
22:15 上传
阅读权限10
在线时间 小时
解决了,第二个改成arr2
阅读权限10
在线时间 小时
好像还是太烦了,每组里面都要写两次,不懂有没有更简单的方法了
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师共有 1339 人关注过本帖
标题:关于VB6打印图片的一点心得,帮你解开打印尺寸偏小的问题
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:3&&&
关于VB6打印图片的一点心得,帮你解开打印尺寸偏小的问题
Visual Basic的Printer对象支持PaintPicture方法,可以支持打印位图。其语法为:
&&& Printer.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
&&& 参数Picture是必需的,指明要绘制到打印机上的图形的来源源,通常是对象的Picture或Image属性。
&&& 参数x1, y1也是必需的,均为单精度数值,指定参数picture所确定图形在打印机上绘制的坐标(x-轴和y-轴)。其值的单位是由Printer的 ScaleMode 属性决定的。
&&& 参数Width1和Height1是可选的,都是单精度数值,指示图象的目标宽度和高度。如果目标宽度/高度比源宽度 (width2)/高度(height2)大或者小,将适当地拉伸或压缩图形。如果省略这两个参数,则使用图形的原始尺寸。
&&& 参数x2, y2、Width2和Height2是可选的。它们指示参数picture确定的图象内剪贴区的坐标(x-轴和y-轴)和大小。利用这四个参数,我们可以打印图象的一部分。默认是打印整个图象。
&&& 参数Opcode是可选的,是长型数值。它用来定义在将图象绘制到打印机上时对图象执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic帮助文件中的有关内容。对于打印机来说,这个参数较少使用;而在屏幕显示图象时往往利用这个参数实现一些特殊效果。
&&& 通过使用负的目标高度值 (height1)或目标宽度值 (width1) ,可以水平或垂直翻转位图。
&&& 下面是一个简单的例子:
&&& Printer.PaintPicture Picture1.Image, 0, 0
以上是网上搜索的使用PictureBox控件时打印设置,我用的是Image控件,使用方法一样,用A4字打印结果始终图片尺寸偏小,在一次偶然打印大图的试验中发现四边有留白,因此,在设置ScaleWidth和ScaleHeight的值时,不能用设置成A4的实际大小,必须减去留边不能打印的部分。以实例说明:
&&& If Image2.Visible = True And Image3.Visible = True Then
&&&&&&&&Call 选择打印机
&&&&&&&&Printer.ScaleMode = 6 '单位为毫米
&&&&&&&&Printer.ScaleWidth = 210 - 15 '纸张宽度为210,打印机的实际打印宽度只有210-15
&&&&&&&&Printer.ScaleHeight = 297 - 12 '纸张高度为297,打印机的实际打印高度只有297-12
&&&&&&&&Printer.ScaleLeft = 0
&&&&&&&&Printer.ScaleTop = 0
&&&&&&&&Printer.PaintPicture Image2.Picture, 62.5 - 7.5, 52 - 6, 85, 53 '打印身份证正面,设置X、Y轴起点位置、图片的宽、图片的高,并发送打印图片的数据
&&&&&&&&Printer.PaintPicture Image3.Picture, 62.5 - 7.5, 192 - 6, 85, 53 '打印身份证反面,设置X、Y轴起点位置、图片的宽、图片的高,并发送打印图片的数据
&&&&&&&&Printer.EndDoc '数据发送完毕,结束打印
&&& End If
Image2控件加载的JPG格式的身份证扫描件大图(放大7倍),通过打印时固定打印尺寸为实际大小(85*53),这样打印出的效果比复印的效果差不了多少,如果哪位也遇到次问题的朋友不妨一试。
附上“选择打印机”(主要是选择打印机端口)子程序:
Sub 选择打印机()
&&& '遍历打印机并选择
&&& Const HKEY_LOCAL_MACHINE As Long = &H
&&& Const HKEY_CURRENT_USER As Long = &H
&&& Dim I As Integer
&&& Dim lRC As Long
&&& Dim sPath As String
&&& Dim objRegistry As Object
&&& Dim sKeyValue As String
&&& Dim Dic As Object, Printer As Object, arr, N&
&&& Set Dic = CreateObject(&scripting.dictionary&)
&&& With GetObject(&winmgmts:\\.\root\cimv2&)
&&&&&&&&For Each Printer In .ExecQuery(&Select * from Win32_Printer&)
&&&&&&&&&&&&Dic.Add Printer.Name, &&
&&&&&&&&Next Printer
&&& End With
&&& If Dic.Count = 0 Then
&&&&&&&&'弹出提示并在3秒后自动关闭一()
&&&&&&&&MessageBoxTimeout Me.hWnd, &未找到安装的打印机!&, &错误提示!&, vbInformation, 0, 3000
&&&&&&&&arr = Dic.keys
&&&&&&&&Set objRegistry = GetObject(&winmgmts://./root/default:StdRegProv&)
&&&&&&&&sPath = &Software\Microsoft\Windows NT\CurrentVersion\Devices&
&&&&&&&&For N = LBound(arr) To UBound(arr)
&&&&&&&&&&&&lRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, sPath, arr(N), sKeyValue)
&&&&&&&&&&&&If (lRC = 0) And (Err.Number = 0) Then
&&&&&&&&&&&&&&& Dic(arr(N)) = Replace(sKeyValue, &winspool,&, &&)
&&&&&&&&&&&&End If
&&&&&&&&Next N
&&&&&&&&For N = LBound(arr) To UBound(arr)
&&&&&&&&&&&&'ActivePrinter = arr(N) & & 在 & & Dic(arr(N))
&&&&&&&&&&&&
&&&&&&&&&&&&If arr(N) = &\\长丰001\Brother DCP-7060D Printer& Then ActivePrinter = arr(N) & & 在 & & Dic(arr(N)) '确定打印机
&&&&&&&&Next N
&&& End If
&&& Set Dic = Nothing
搜索更多相关主题的帖子:
来 自:斗气大陆
等 级:贵宾
威 望:41
帖 子:2174
专家分:13248
三十年河东,三十年河西。莫欺少年穷!
等 级:贵宾
威 望:18
帖 子:361
专家分:1724
等 级:贵宾
威 望:66
帖 子:3776
专家分:25365
以下是引用xlcsfa在 14:59:21的发言:
Visual Basic的Printer对象支持PaintPicture方法,可以支持打印位图。其语法为:
&&& Printer.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
&&& 参数Picture是必需的,指明要绘制到打印机上的图形的来源源,通常是对象的Picture或Image属性。
&&& 参数x1, y1也是必需的,均为单精度数值,指定参数picture所确定图形在打印机上绘制的坐标(x-轴和y-轴)。其值的单位是由Printer的 ScaleMode 属性决定的。
&&& 参数Width1和Height1是可选的,都是单精度数值,指示图象的目标宽度和高度。如果目标宽度/高度比源宽度 (width2)/高度(height2)大或者小,将适当地拉伸或压缩图形。如果省略这两个参数,则使用图形的原始尺寸。
&&& 参数x2, y2、Width2和Height2是可选的。它们指示参数picture确定的图象内剪贴区的坐标(x-轴和y-轴)和大小。利用这四个参数,我们可以打印图象的一部分。默认是打印整个图象。
&&& 参数Opcode是可选的,是长型数值。它用来定义在将图象绘制到打印机上时对图象执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic帮助文件中的有关内容。对于打印机来说,这个参数较少使用;而在屏幕显示图象时往往利用这个参数实现一些特殊效果。
&&& 通过使用负的目标高度值 (height1)或目标宽度值 (width1) ,可以水平或垂直翻转位图。
&&& 下面是一个简单的例子:
&&& Printer.PaintPicture Picture1.Image, 0, 0
以上是网上搜索的使用PictureBox控件时打印设置,我用的是Image控件,使用方法一样,用A4字打印结果始终图片尺寸偏小,在一次偶然打印大图的试验中发现四边有留白,因此,在设置ScaleWidth和ScaleHeight的值时,不能用设置成A4的实际大小,必须减去留边不能打印的部分。以实例说明:
&&& If Image2.Visible = True And Image3.Visible = True Then
&&&&&&&&Call 选择打印机
&&&&&&&&Printer.ScaleMode = 6 '单位为毫米
&&&&&&&&Printer.ScaleWidth = 210 - 15 '纸张宽度为210,打印机的实际打印宽度只有210-15
&&&&&&&&Printer.ScaleHeight = 297 - 12 '纸张高度为297,打印机的实际打印高度只有297-12
&&&&&&&&Printer.ScaleLeft = 0
&&&&&&&&Printer.ScaleTop = 0
&&&&&&&&Printer.PaintPicture Image2.Picture, 62.5 - 7.5, 52 - 6, 85, 53 '打印身份证正面,设置X、Y轴起点位置、图片的宽、图片的高,并发送打印图片的数据
&&&&&&&&Printer.PaintPicture Image3.Picture, 62.5 - 7.5, 192 - 6, 85, 53 '打印身份证反面,设置X、Y轴起点位置、图片的宽、图片的高,并发送打印图片的数据
&&&&&&&&Printer.EndDoc '数据发送完毕,结束打印
&&& End If
Image2控件加载的JPG格式的身份证扫描件大图(放大7倍),通过打印时固定打印尺寸为实际大小(85*53),这样打印出的效果比复印的效果差不了多少,如果哪位也遇到次问题的朋友不妨一试。
附上“选择打印机”(主要是选择打印机端口)子程序:
Sub 选择打印机()
&&& '遍历打印机并选择
&&& Const HKEY_LOCAL_MACHINE As Long = &H
&&& Const HKEY_CURRENT_USER As Long = &H
&&& Dim I As Integer
&&& Dim lRC As Long
&&& Dim sPath As String
&&& Dim objRegistry As Object
&&& Dim sKeyValue As String
&&& Dim Dic As Object, Printer As Object, arr, N&
&&& Set Dic = CreateObject(&scripting.dictionary&)
&&& With GetObject(&winmgmts:\\.\root\cimv2&)
&&&&&&&&For Each Printer In .ExecQuery(&Select * from Win32_Printer&)
&&&&&&&&&&&&Dic.Add Printer.Name, &&
&&&&&&&&Next Printer
&&& End With
&&& If Dic.Count = 0 Then
&&&&&&&&'弹出提示并在3秒后自动关闭一()
&&&&&&&&MessageBoxTimeout Me.hWnd, &未找到安装的打印机!&, &错误提示!&, vbInformation, 0, 3000
&&&&&&&&arr = Dic.keys
&&&&&&&&Set objRegistry = GetObject(&winmgmts://./root/default:StdRegProv&)
&&&&&&&&sPath = &Software\Microsoft\Windows NT\CurrentVersion\Devices&
&&&&&&&&For N = LBound(arr) To UBound(arr)
&&&&&&&&&&&&lRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, sPath, arr(N), sKeyValue)
&&&&&&&&&&&&If (lRC = 0) And (Err.Number = 0) Then
&&&&&&&&&&&&&&& Dic(arr(N)) = Replace(sKeyValue, &winspool,&, &&)
&&&&&&&&&&&&End If
&&&&&&&&Next N
&&&&&&&&For N = LBound(arr) To UBound(arr)
&&&&&&&&&&&&'ActivePrinter = arr(N) & & 在 & & Dic(arr(N))
&&&&&&&&&&&&
&&&&&&&&&&&&If arr(N) = &\\长丰001\Brother DCP-7060D Printer& Then ActivePrinter = arr(N) & & 在 & & Dic(arr(N)) '确定打印机
&&&&&&&&Next N
&&& End If
&&& Set Dic = Nothing
End Sub其它支持代码?
版权所有,并保留所有权利。
Powered by , Processed in 0.027468 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved&&&&一个小插件,用来解决VB6.0无法保存带有高版本Flash控件窗体的问题
一个小插件,用来解决VB6.0无法保存带有高版本Flash控件窗体的问题
SaveFlashForm插件是一个VB6.0中文版开发工具下的一个小插件,主要用来解决VB6.0无法保存带有高版本Flash控件窗体的问题。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行您的举报已经提交成功,我们将尽快处理,谢谢!
楼上的讲解很完整,建议看完,然后针对楼主的问题我做以下补充。
出错的原因很可能是在cs代码中调用了Label1,也就是这个Label的ID,或者在其他控件...
用来盗密码吗?不告诉你。
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'

我要回帖

更多关于 百鸡问题vb 的文章

 

随机推荐