一、 查找
' 調用工作表函數查找 Sub t1() '判斷是否存在,並查找所在行數 Dim hao As Integer Dim icount As Integer icount = Application.WorksheetFunction.CountIf(Sheets("庫存明細表").[b:b], [g3]) If icount > 0 Then MsgBox "該入庫單號碼已經存在,請不要重復輸入" MsgBox Application.WorksheetFunction.Match([g3], Sheets("庫存明細表").[b:b], 0) End If End Sub ' 使用find 方法 Sub t2() Dim r As Integer, r1 As Integer Dim icount As Integer icount = Application.WorksheetFunction.CountIf(Sheets("庫存明細表").[b:b], [g3]) If icount > 0 Then r = Sheets("庫存明細表").[b:b].Find(Range("g3"), lookat:=xlwbole).Row ' 查找號碼第次出現的位置 r1 = Sheets("庫存明細表").[b:b].Find([g3], , , , , xlPrevious).Row ' xlPrevious 向后查找 MsgBox r & ":" & r1 End If End Sub Sub t3() '返回最下一行的非空行的行數 MsgBox Sheets("庫存明細表").Cells.Find("*", , , , , xlPrevious).Row End Sub
案例 :
輸入
Sub 輸入() Dim c As Integer ' 號碼在庫存表中的個數 Dim r As Integer ' 入庫單的數據行數 Dim cr As Integer ' 庫存明細表中的第一個空行的行數 With Sheets("庫存明細表") c = Application.CountIf([b:b], Range("g3")) If c > 0 Then MsgBox "該單據號碼已經存在!請不要重復輸入" Exit Sub Else r = Application.CountIf(Range("b6:b10"), "<>") cr = .[b65536].End(xlUp).Row + 1 .Cells(cr, 1).Resize(r, 1) = range("e3") .Cells(cr, 2).Resize(r, 1) = range("g3") .Cells(cr, 3).Resize(r, 1) = range("c3") .Cells(cr, 4).Resize(r, 6) = Cells(6, 2).Resize(r, 6).Value MsgBox "輸入已完成" End If End With End Sub
查找
Sub 查找() Dim c As Integer ' 號碼在庫存表中的個數 Dim r As Integer ' 入庫單的數據行數 With Sheets("庫存明細表") c = Application.CountIf([b:b], Range("g3")) If c = 0 Then MsgBox "該單據號碼不存在!" Exit Sub Else r = .[b:b].Find(Range("g3"), , , , , xlNext).Row Range("c3") = .Cells(r, 3) Range("e3") = .Cells(r, 1) Cells(6, 2).Resize(e, 5) = Cells(r, 4).Resize(e, 5).Value MsgBox "查找已完成" End If End With End Sub
刪除
Sub 刪除() Dim c As Integer ' 號碼在庫存表中的個數 Dim r As Integer ' 入庫單的數據行數 With Sheets("庫存明細表") c = Application.CountIf([b:b], Range("g3")) If c = 0 Then MsgBox "該單據號碼不存在!" Exit Sub Else r = .[b:b].Find(Range("g3"), , , , , xlNext).Row .Range(r & ":" & c + r - 1).Delete MsgBox "刪除成功" End If End With End Sub
修改
Sub 修改() Call 刪除 Call 輸入 End Sub