Office中国论坛/Access中国论坛

标题: 自动增行录入 [打印本页]

作者: 宾临城下    时间: 2008-5-5 22:08
标题: 自动增行录入
由于打印页面效果的要求,把shieet1设计成我需要的页面效果,输入数据后打印该表,每次打印的表格是一样的,只是数据不同,但我又要把每次输入的数据打印完后在sheet2保存起来.即在sheet1里设置一个按扭,每次在sheet1的固定单元格输入数据,单击这个按扭后在sheet2自动增加一行录入sheet1的信息.相当于把sheet1当作表单,把sheet2当作数据清单来使用.[attach]30022[/attach]
作者: excel201    时间: 2008-5-6 01:00
Private Sub CommandButton1_Click()
   
   With Worksheets("sheet1")
       '代号
       dh = .Range("d2").Value
       '出货时间
       chsj = .Range("d11").Value & "年" & .Range("f11").Value & "月" & .Range("h11").Value & "日"
      
   End With
   
   
   With Worksheets("sheet2")
      '在第4行前插入一新行,这是关键呀
      .Rows(4).Insert
     .Range("a4").Value = dh
     .Range("b4").Value = chsj
     
  End With
  
   
End Sub

时间不早了,困死了。其他的出货次数、数量、人员,你自己填代码吧

[ 本帖最后由 excel201 于 2008-5-6 01:02 编辑 ]
作者: 宾临城下    时间: 2008-5-6 08:34
标题: 感谢
为了一个素不相识的网友,在不图回报的情况下,干到凌晨1点多钟,虽然我还没有试结果,但看到回答时间我就有点过意不去.这种精神值得所有office中国论坛的人学习,我在此表示感谢,感谢少侠.谢谢!
作者: 宾临城下    时间: 2008-5-6 10:34
原帖由 excel201 于 2008-5-6 01:00 发表
Private Sub CommandButton1_Click()
   
   With Worksheets("sheet1")
       '代号
       dh = .Range("d2").Value
       '出货时间
       chsj = .Range("d11").Value & "年" & .Range("f11").Value &  ...

我把少侠的代码粘贴进事件里,再添加剩余代码后,只有时间录入正确,请少侠检查.
作者: excel201    时间: 2008-5-6 11:13
你变量搞错了,饭后我给你搞一个
作者: excel201    时间: 2008-5-6 11:39
ok~~~~~~~
作者: 宾临城下    时间: 2008-5-6 12:08
我不懂语句,我只是依样画葫芦,呵呵!
作者: 宾临城下    时间: 2008-5-6 13:38
问题已解决.
我不懂VBA,摸索了一下,好象要定义变量名,漫漫看吧,
少侠辛苦了,方便的话我一定请你喝酒,再次谢谢!
作者: tygg    时间: 2008-5-28 16:50
真的不错,又学习了一种表单录入法
作者: 松涛伴雨入帘栊    时间: 2008-5-29 11:52
老大:
太感谢了!
谢谢宾临城下提出这个问题,更谢谢excel201解决了这个问题.
这个问题对小可也很管用.

还想进一步请教一个问题
按6楼处理自动增行录入,有"如积薪,后来居上".但人们通常习惯于
让最先录入的数据,在最上面.以此类推,最后录入的数据则在最后.
要如何改动,才能达此目的?
作者: richiewong    时间: 2008-5-29 15:01
标题: 回复 10# 的帖子
只需要在加一个变量储存最大行即可。
先声明一个变量
Dim i_max As Long

然后sheet1部分代码不变。
sheet2部分代码改为以下
   With Worksheets("sheet2")
      For i = 4 To 60000
         If Trim(.Cells(i, 1)) = "" Then
           i_max = i
            Exit For
         End If
      Next i

      .Range("a" & i_max).Value = dh
      .Range("b" & i_max).Value = chsj
      .Range("c" & i_max).Value = chcs
      .Range("d" & i_max).Value = tvch
      .Range("e" & i_max).Value = dvdch
      .Range("f" & i_max).Value = vcdch
      .Range("g" & i_max).Value = tvkc
      .Range("h" & i_max).Value = dvdkc
      .Range("i" & i_max).Value = vcdkc
      .Range("j" & i_max).Value = dd
      .Range("k" & i_max).Value = ren
      .Range("l" & i_max).Value = cky
      
  End With

[ 本帖最后由 richiewong 于 2008-5-29 15:03 编辑 ]
作者: 松涛伴雨入帘栊    时间: 2008-5-30 18:39
感谢richiewong的回答!
这些天很忙,
对于VBA我又是个纯粹的门外汉,以前对此总是敬而远之。
因此,只能先考贝下来,慢慢领会了!
作者: fzwjz    时间: 2008-6-18 08:24
真的不错,又学习了一种表单录入法
作者: du123    时间: 2008-10-8 13:01
谢谢  辛苦了[:50]
作者: zss427607    时间: 2009-2-12 00:22
学习中
作者: ghfmac    时间: 2009-2-12 09:21
还有一个问题是比如出货时间在这次没输时,下次这条数据会顶到这次没输的行里,所以这样不如access去做
作者: 相当板札    时间: 2009-6-2 10:00
学习中
作者: litong9999    时间: 2009-9-9 12:16
真的不错,又学习了一种表单录入法
作者: litong9999    时间: 2009-9-17 12:27
学习了一种表单录入法
作者: joyark    时间: 2011-7-3 00:21
受益非浅




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3