这段excel vba代码应该怎么写?

问题如图,谁能帮忙解答一下,感谢!

第1个回答  2018-11-27
Private n As Integer

Private Sub CommandButton1_Click()
   n = n + 1
   If Sheets("Sheet1").Cells(n + 1, 1) <> "" Then
      Sheets("Sheet1").Cells(1, 5) = Sheets("Sheet1").Cells(n + 1, 1)
      Sheets("Sheet1").Cells(1, 6) = Sheets("Sheet1").Cells(n + 1, 2)
      Sheets("Sheet1").Cells(1, 7) = Sheets("Sheet1").Cells(n + 1, 3)
   Else
      CommandButton1.Enabled = False
   End If
End Sub

第2个回答  2018-11-27
两种情况。
1 关闭文件,再打开,会重新从第一行数据开始返回。static定义变量即可
2 关闭文件再打开,继续从当前行位置依次往后。
这里又有两种方法,
2-1代码里需要先判断已显示的行数,然后继续。
2-2利用名称管理器或者某个单元格,记录执行到的位置,再执行的时候查询一次。

你需要哪个方案?追问

再次打开文件从上次的继续,而不是重新从第一行开始

追答

裴振世那位的回答就可以办到。他只是占用了Z1单元格。

第3个回答  2018-11-27
自己设定一个单元格记录按的次数,假定为z1单元格。代码如下
sub test()
dim cS as integer
if range("z1")="" then
range("z1")=1
else
range("z1").value=range("z1").value+1
endif
cs=range("z1").value
cells(1,5)=cells(cs,1).value
cells(1,6)=cells(cs,2).value
cells(1,7)=cells(cs,3).value
end sub本回答被提问者采纳