VBA 庫存管理案例


一、 查找

' 調用工作表函數查找

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM