想在excel里用VBA,点击按钮复制一行数据到另外一行,可是不知道该怎么写

要求是sheet2里面是一行数据,通过sheet1的控件可改变它的值(一张调查表),但是现在我想要将数据全部保存到sheet3中,因为sheet2的里面的数据始终只是一行,所以我想每次点击一个按钮使之依顺序保存到sheet3里面,求VBA的大神,或者office大神,懂的教我一下

代码如下:

Private Sub ComboBox1_Change()
Sheet2.Cells(1, 1).Value = ComboBox1.Value
Dim i As Integer
i = 2
Do While Not i > 100000
If Sheet3.Cells(i, 1) = "" Then
Sheet3.Cells(i, 1).Value = Sheet2.Cells(1, 1).Value
Sheet3.Cells(i, 2).Value = Now()
GoTo lastline
Else
i = i + 1
End If
Loop
lastline:
MsgBox "done!"
End Sub

效果是:

sheet1里面有combobox1, 用户选某值,

sheet2的第一行变成用户选的值,

sheet3的第一非空行追加记录用户值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-28
假定sheet2里的一行数据在第一行,如果这行数据是表sheet1的按钮控件在改变它,且每点击一次就改变一次,那么在这个按钮的的代码后面(End Sub前)加上下面这句就可将sheet2表中的第一行数据依次复制到sheet3中。
Sheet2.Rows(1).Copy Sheet3.[A65536].End(xlUp).Offset(1, 0)
注意:检测sheet3中已经使用了多少行是用A列检测的,所以A列为关键列,必需要有数据,否则要漏掉一些数据,将A列([A65536])改为每次都有数据的列就不会出问题。如果sheet2中的数据在第二行,将Rows(1)中的1改为2即可。追问

不太明白你的意思,倒是可以填充,只是不能自动往后行里面追加,一直都是填充那一行

追答

你填充的数据行里A列可能是没数据,就会出现这种情况,我请你注意的就是把[A65536]改为每次都会有数据的列,如B1每次有数据,就将[A65536]改为[B65536] 即可

第2个回答  2013-09-28
Rows("1:1").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A11").Select
ActiveSheet.Paste
Range("B17").Select

above code : copy sheet1.row1 to sheet2.row17,( sth wrong with computer, cannot type Chinese), hope that will help you, if any questons, ask me again追问

我是要按行复制啊,你这个是单元格复制?

追答

按行的,楼主可以调试下~

追问

谢谢了,但是还是楼上的回答对我有用些,可能你的答案更好,但是我不怎么看的懂。

追答

ok

相似回答