想在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

想在excel里用VBA,点击按钮复制一行数据到另外一行,可是不知道该怎么写...
Private Sub ComboBox1_Change()Sheet2.Cells(1, 1).Value = ComboBox1.ValueDim i As Integeri = 2Do While Not i > 100000If Sheet3.Cells(i, 1) = "" ThenSheet3.Cells(i, 1).Value = Sheet2.Cells(1, 1).ValueSheet3.Cells(i, 2).Value = Now()GoTo lastlineElsei = i...

excel中如何将用vba把表一的信息录入表二
1、可以先利用宏录制来自动生成代码,然后再进行修改。操作方法如下:第一步,打开一个excel应用,新建一个白空表格,并录入数据。2、第二步,点击excel应用程序窗口状态栏中左侧的“宏录制”按钮。3、第三步,然后在表1中,选中左上角第一个有数据的单元格。4、第四步,接着按下CTRL+SHIFT键,再...

EXCEL根据某一一行的值,自动复制插入行,VBA代码怎么写
12345678910Sub fuzhi()with activesheet For i = .Range("N65536").End(xlUp).Row To 2 Step -1 n = UBound(Split(.Cells(i, "N"), ",")) .Rows(i & ":" & i + n - 1).Insert .Rows(i + n).Copy .Rows(i & ":" & i + n - 1) .Rows(i + 1 & "...

怎样在excel里用vba之类的实现点击一个按钮后一行数据自动复制粘贴到...
假设你数据在A2到F2里输入。任意插入一图形,右键点该图形,指定宏,新建。在出来的窗口中再Sub和End Sub之间 粘贴如下代码:Dim i, j As Integer i = --Range("A2")For j = 1 To 6 Cells(i, j) = Cells(2, j)Next j 回到Excel,就有了你要的。

excel vba 点控件执行复制数据到另一工作表
1.在sheet1中先写好筛选条件,点开文件复制的目标excel(本文是sheet2),最上面工具栏中点“数据”,找到筛选旁边的“高级”选项,跳出“高级筛选”框 2.选中“将筛选结果复制到其他位置”,然后“列表区域”选中sheet1中的原始数据,“条件区域”选中sheet1中我们提前写好的条件,“复制到”选中sheet2...

excel 如何用宏VBA实现输入完数据光标框从一个单元格跳转到下一行的单元...
Target As Range)If Target.Count > 1 Then Exit SubIf Target <> "" Then Cells(WorksheetFunction.Min(65536, Target.Row + 1), WorksheetFunction.Max(1, Target.Column - 1)).SelectEnd Sub右键SHEET1,查看代码。粘贴上面的代码。因为考虑到在第一列或第65536行的情况,所以用了MIN和MAX。

excel 怎么用宏复制一行数值到粘贴另一表格最后一行下空白行
.Cells(3, 1).Resize(1, 20) '假设复制 工作表名称是 11 第三行,20个单元格WK.Close ' 关闭来源表格Sheets("My").Select '选择要粘贴的工作表Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Resize(1, 20) = arr '定位最后一行,下一下个空白行,并输出数组。End Sub ...

用vba怎样取excel中的一列在将提取的数据放到另一个sheet的一行,求代码...
'在sheet2的单元格A1输入sheet1的A1的值 sheets("sheet2").cells(1,1)=sheets("sheet1").cells(1,1)或 sheets("sheet2").range("a1")=sheets("sheet1").range("a1")

excel中怎样用VBA实现自动复制一列数据到另一个工作表?
代码如下。详见附件 Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Range("A1"), Target) Is Nothing And Target.Count = 1 Then Dim N& N = Val(Target) If N > 0 And N <= Cells.Columns.Count Then Sheet1.Columns(N).Copy [A1]...

excel vba中 我想要复制一个区域的内容到另外一张表上,但是复制区域的...
精简一点:Dim i As Integer i = 2 Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Range("a1")如果要打开Sheets(2)工作表,在最后加上语句:Sheets(2).Activate 用以下语句也可以:Range("a1").Resize(2, i).Copy Sheets(2).Range("a1")说明:Range对象的Resize属性是用于调整指定...

相似回答