作者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/m.aspx?n=bbs/Visual_Basic/M.1422487531.A.CF8.html