wps利用VB代码定位到A列最后一个不等于空的单元格上,怎么写代码?

如题所述

如果你不记得函数的话, 可以用如下代码解决
sub test()
ri = 1
do while cells(ri,1).value <>""
ri = ri +1
loop
ri = iif(ri=1,1,ri-1)
end sub
当然用更方便的方法
rn = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-12
WPS表格实例——考场安排系统(一)
1. 前言:虽然现在编程软件很多,用VB,Python等做一个简单程序系统出来很方便,但是对于不会编程的人来说,根本就无从下手,所以,虽然用Excel表格做一个程序很麻烦,但是相对来说,比较容易上手。今天我们就用引用函数与查找函数完成考场安排系统的制作吧。
2. 新建一个WPS表格,将sheet1改名为“学生信息”,依次增加序号、学生姓名、班级、考号等信息;
3. 新建一个“考场设置”工作表,在第一行依次输入“考场号”“每考场人”“考场地点”“取值区间”“考场累加人数”,然后在第二排依次输入“0”;
4. 在“考场号”这一列,根据需求输入,我这里设置有15个考场,每考场人数和考场地点根据实际需求来设定,在“考场累加人数”列依次输入公式,E3=SUM(B3),E4=SUM(B3:B4),E5=SUM(B3:B5)......E17=SUM(B3:B17),在“取值区间”列输入D3=E3+1;然后将鼠标放在D3单元格右下角变成黑色后,向下拖动鼠标填充至D17单元格;
5. 新建“SS”工作表,在第一行输入以下内容,在B2单元格输入公式B2=IF(学生信息!B2>1,OFFSET(学生信息!B2,0,0,1,1),""),向右拖动填充至D2单元格,再同时选中B2、C2、D2单元格向下填充至所需行数,我这里预留了600名学生,填充至了601行,这样就将学生信息表的姓名、准考证号、班级等信息复制过来了;
6. 在序列编号列从1填充至600,在F2单元格中输入公式F2=IFERROR(IF(学生信息!B2>1,LOOKUP(H2,考场设置!D$2:D$20,考场设置!A$3:A$20),""),""),在G2单元格输入G2=IFERROR(LOOKUP(F2,考场设置!A$3:A$20,考场设置!C$3:C$20),""),在E3单元格输入E3=IF(学生信息!B2>1,IF(F2=F1,E1+1,1),""),再同时选中E2、F2、G2单元向下拖动填充至601行;
7. 在A2单元格输入A2=IFERROR(F2*1000+E2,""),在向下拖动填充至601行;
8. 新建班贴工作表,在第一行依次输入以下内容;
在A2单元格输入A2=IFERROR(OFFSET(SS!A2,0,0,1,1),""),向右填充至F2,再同时选中A2、B2、C2、D2、F2向下拖动至601行,我们如果要每个班分别打印出来,只需用筛选功能筛选班级即可;
9. 新建门贴工作表,参照下面模板设置好格式;
10. 在B3单元格输入B3=IFERROR(VLOOKUP(1*1000+$A3,SS!$A$1:$H$601,2,0),""),C3=IFERROR(VLOOKUP(1*1000+$A3,SS!$A$1:$H$601,3,0),""),D3=IFERROR(VLOOKUP(1*1000+$A3,SS!$A$1:$H$601,4,0),""),同时选中这三个单元格拖动填充至第一考场末尾;
11. 在F3单元格输入F3=IFERROR(VLOOKUP(1*1000+$E3,SS!$A$1:$H$601,2,0),""),
G3=IFERROR(VLOOKUP(1*1000+$E3,SS!$A$1:$H$601,3,0),""),
H3=IFERROR(VLOOKUP(1*1000+$E3,SS!$A$1:$H$601,4,0),""),同时选中这三个单元格拖动填充至第一考场末尾;我在考场设置里面将一考场人数设为40人,所以这里只显示到40;
12. 按照相同的模板设置第二考场门贴,将第一考场的第一行复制到第二考场的第一行,然后将每个单元格公式中的1*1000改成2*1000(第三考场改成3*1000,四考场4*1000,以此类推),再向下填充至二考场最末尾;
13. 我预设了15个考场,所以按照类似的方法,一直做到15考场;
14. 复制门贴工作表,重命名为桌贴,然后用查找替换将表格中的门贴全部替换为桌贴,再根据自己所需格式修改排版,这里我删除了班级列,调整了列宽;
15. 到这里,表格的基本功能已经可以实现了,我们只需要改变学生信息表和考场设置表里面的数据,班贴,桌贴和门贴可以自动显示,SS表不需要显示不能修改,我们可以右击SS表,选择保护工作表功能,设置一个密码,再将它隐藏起来。