Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

一个关于VB的问题!

gemeng  发表于:2011-07-22 15:15:32  
复制

 

我需要的时一个EXCEL的程序

请不要丢我,

我是没办法才回来找大家帮帮忙的,。

 

详细看附件的EXCEL,点击"G3"行,会弹出一个窗口,可以输入P/N和数量,

 

现在的情况是不能循环得输入,我可以用扫描仪扫入这些信息,

 

扫入P/N后自动跳到数量,然后自动将数量添加到表格里,然后光标又自动跳回扫P/N的框里,这样可以不停的输入,不需要点“输入”“确定”这两个按钮

 

 

 

点击下载此附件

 

 

我改来改去就是弄不好,,,

 

拜托大师门帮帮忙啊~~~

 

Top
三科一 发表于:2011-07-24 00:11:00

大概看了下你的文件,

你想输入后按enter就直接回到后光标回到combobox1,那么你在exit sub前加一句 Me.ComboBox1.SetFocus  就行了。

Private Sub CommandButton1_Click()
Dim pn$, sl$
pn = ComboBox1.Text
sl = TextBox2.Text
Set r1 = Sheet3.[b:b].Find(pn)
For i = 7 To 15
    If Sheet3.Cells(r1.Row, i) = "" Then Sheet3.Cells(r1.Row, i) = sl:
    Me.ComboBox1.SetFocus
    Exit Sub
Next

End Sub



gemeng 发表于:2011-07-24 07:25:45

我是这样添加的,看下面红色代码,可是当我输入不等于r1的时候,EXCEL直接就把VB编辑器弹出来了

 

如何才能实现当不等于前面B列(料号)的时候会弹出“输入错误”提示呢?

 

这个我怎么试都不成功,请高手赐教:

 

Private Sub CommandButton1_Click()
Dim pn$, sl$
pn = ComboBox1.Text
sl = TextBox2.Text
Set r1 = Sheet3.[b:b].Find(pn)
For i = 7 To 15
    If Sheet3.Cells(r1.Row, i) = "" Then Sheet3.Cells(r1.Row, i) = sl: Exit Sub
Me.ComboBox1 = Null
Me.TextBox2 = Null
Me.ComboBox1.SetFocus
Next
End Sub

 


Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then CommandButton1_Click
End Sub

Private Sub UserForm_Initialize()
Dim Arr, i&, d, k
Arr = Sheet3.[a1].CurrentRegion
Set d = CreateObject("Scripting.Dictionary")
For i = 4 To UBound(Arr)
    d(Arr(i, 2)) = ""
Next
k = d.keys
Me.ComboBox1.List = k
End Sub



总记录:2篇  页次:1/1 9 1 :