关于EXCEL的VBA的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 20:07:10
我有个表格,每次需要将其中的几个单元格数据保存在另个工作表中,上次请教别人是这样的
Sub 保存数据()
i = Sheet5.[a50000].End(xlUp).Row

Sheet5.Cells(i + 1, 2) = Sheet2.Cells(2, 3)
Sheet5.Cells(i + 1, 3) = Sheet2.Cells(3, 3)
Sheet5.Cells(i + 1, 4) = Sheet2.Cells(3, 10)
Sheet5.Cells(i + 1, 5) = Sheet2.Cells(22, 10)
Sheet5.Cells(i + 1, 6) = Sheet2.Cells(4, 3)
a = Sheet5.Cells(i, 1)
If Len(a) = 0 Then
s = 1
Else
s = a + 1
End If
Sheet5.Cells(i + 1, 1) = s
但是问题是这样的话,他总是从第二行开始保存,现在如果我想从第三行,或者第四行开始保存的话,应该怎么改变这段代码呢,达人请帮帮我
谢谢楼下的回答,你这个方法我以前就试过了,因为我前面还有编号的,第一次保存的数据为1,第二次2,依此类推
如果这样改的话,编号就会跟行错开的,你可以在EXCEL中试一下的

还有就是i = Sheet5.[a50000].End(xlUp).Row这个是什么意思呢

把每个Sheet5.Cells(i+1,n)中的i+1换成i+2、i+3之类的,就可以了。

注意最后一行还有一个i+1

i = Sheet5.[a50000].End(xlUp).Row是从A50000开始向上找到区域(有数据或空白)的终点,返回所在行索引号。也就是说,如果你的数据积累到了50000行以上,这行程序就得改了。

Sheet5.[a50000].End(xlUp).Rows是得到区域a50000顶端所在的行。