作者hulapig (呼拉猪)
看板Visual_Basic
标题Re: [VBA ] 如何自动检查栏位是否为空
时间Thu Jan 29 07:25:27 2015
※ 引述《soracho (空)》之铭言:
: ※ 引述《soracho (空)》之铭言:
: : 我想在Workbook_Open或Worksheet_Activity内
: : 设定一个判断式,如下虚拟码
: : 请问这该如何去写比较好,求写法?
: : 虚拟码
: : if (某列的第1栏内不为空 OR 某列的第2栏内不为空 OR 某列的第3栏内不为空 OR 某列的第4栏内不为空) Then 换列
: : Else 传回该列索引值
: : end if
: 最後我自己下午反覆测试
: 终於做出来
: 每次开启表单就自动搜寻本次应该从哪列开始输入
: 写法如下:
: For rownum = 2 To 65535
: For col = 1 To 4
: If Sheets("工作表1").Cells(rownum, col) <> Empty Then TextBox1.Text = rownum Else GoTo break
: Next col
: Next rownum
: break: TextBox1.Text = (Val(TextBox1.Text) + 1)
: PS
: 1.为何从第2列开始找,因为个人习惯第一列放本工作表的标题(较为醒目)
: 2.用GoTo是因为不符合就中断回圈,但VB好像没有break这语法,故这样使用
: 3.TextBox1.Text是为了在元件中传递某个变数内的数值(因个人不知为何设置全域变数)
试试这个,可以不用跑回圈:
Dim r As Integer '列
Dim c As Integer '行
r = Cells(65536, 1).End(xlUp).Row
c = Cells(r, 10).End(xlShiftToLeft).Column
If c = 4 Then r = r + 1
TextBox1.Text = r
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 65.96.105.154
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1422487531.A.CF8.html