当前位置:首页 > 每日看点

请问excel怎么搞个库存数据库?

卡卷网12个月前 (05-18)每日看点253

使用Excel做库存的动态管理,核心难点是出入库数据轧差,动态计算库存。下边是我之前写的一篇文章,里边提供了解决这一类的问题的思路,希望对你有帮助,附上代码。

库存动态管理表的设计思路和实现

Sub 存货盘点() Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, ws4 As Worksheet Dim lastRow1 As Long, lastRow2 As Long Dim arr1 As Variant, arr2() As Variant Dim i As Long, j As Long Dim result As Collection Dim arr2Values As Variant ' 设置工作表 Set ws1 = ThisWorkbook.Sheets("02入库单") Set ws2 = ThisWorkbook.Sheets("04单品出库单") Set ws3 = ThisWorkbook.Sheets("05库存商品") Set ws4 = ThisWorkbook.Sheets("03单品费用表") ' 找到每个工作表中A列最后一个非空单元格的行号 lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row ' 清空ws3的A列内容 ws3.Range("A2:A9999").ClearContents ' 将数据存入数组 arr1 = ws1.Range("A2:A" & lastRow1).Value ' 如果数组2不为空,则将其存入arr2 If lastRow2 >= 1 Then arr2Values = ws2.Range("A2:A" & lastRow2).Value If lastRow2 = 2 Then ' 如果只有一个元素,将其转换为二维数组 ReDim arr2(1 To 1, 1 To 1) arr2(1, 1) = arr2Values Else ' 否则,直接赋值 arr2 = arr2Values End If End If ' 创建一个集合来存储不重复的元素 Set result = New Collection ' 遍历数组1,检查数组2中是否有重复的元素 For i = 1 To UBound(arr1, 1) Dim isDuplicate As Boolean isDuplicate = False If lastRow2 >= 1 Then For j = 1 To UBound(arr2, 1) If arr1(i, 1) = arr2(j, 1) Then isDuplicate = True Exit For End If Next j End If If Not isDuplicate Then result.Add arr1(i, 1) End If Next i ' 将结果集合输出到表04的A2单元格开始的位置 'If result.Count > 0 Then ' Dim resultArray() As Variant ' ReDim resultArray(1 To result.Count, 1 To 1) ' For i = 1 To result.Count ' resultArray(i, 1) = result(i) ' Next i ' ws3.Range("A2").Resize(UBound(resultArray, 1), 1).Value = resultArray 'Else ' ws3.Range("A2").Value = "No unique items" 'End If If result.Count > 0 Then Dim resultArray() As Variant ReDim resultArray(1 To result.Count, 1 To 13) ' 假设您想要获取12列信息 For i = 1 To result.Count ' 在库存清单中查找编码 Dim foundCell As Range Set foundCell = ws1.Columns("A:A").Find(What:=result(i), LookIn:=xlValues, LookAt:=xlWhole) ' 如果找到了编码,获取其他列的信息 If Not foundCell Is Nothing Then For j = 1 To 12 ' 假设您想要获取从B列到M列的信息 resultArray(i, j) = foundCell.Offset(0, j - 1).Value Next j ' 在单品费用表中查找第13项的信息 Dim foundCellSupplier As Range Set foundCellSupplier = ws4.Columns("A:A").Find(What:=result(i), LookIn:=xlValues, LookAt:=xlWhole) If Not foundCellSupplier Is Nothing Then resultArray(i, 13) = foundCellSupplier.Offset(0, 8).Value ' 假设供应商信息在第二列 Else resultArray(i, 13) = "没有额外费用" End If Else ' 如果没有找到编码,可以设置一个错误值或者跳过 resultArray(i, 0) = "编码未找到" End If Next i ' 将结果数组输出到表04的A2单元格开始的位置 ws3.Range("A2").Resize(UBound(resultArray, 1), UBound(resultArray, 2)).Value = resultArray Else ws3.Range("A2").Value = "No unique items" End If End Sub

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/05/13191.html

分享给朋友:

相关文章

内存和硬盘的单位都是G,两者的功能是什么?谁能用简单通俗的方式来解读一下?

内存和硬盘的单位都是G,两者的功能是什么?谁能用简单通俗的方式来解读一下?

要弄清楚这个问题,首先要弄清楚什么是内存,什么是硬盘,在计算机的组成结构中有一个很重要的部分是存储器。它是用来存储程序和数据的部件。对于计算机来说,有了存储器,才有记忆功能,,才能保证正常工作。存储器的种类很多。按其用途可分为主存储器与辅助…

马云也搞不明白:为什么现在用户偏爱微信支付,而不是支付宝?

这题我会,我教马云一招。 你直接把你那破比支付宝的代码全删了,重新写一个。 打开支付宝直接就是一个大大的支付码,然后右上角按一下就是扫一扫。你要是还想保留你的其他那些乱七八糟的功能,麻烦将他们全部做到下拉菜单里。你这么设计我不说你能干死微信…

2024,java开发,已经炸了吗?

炸的透透的了,坐标南京。 一月底,一个好哥们,双休朝九晚六不加班18K,被裁。 入职不到两年,算是工资和年终奖才赔了6.5W左右。 上周五新公司入职,周六开始加班。现在每周134加班到晚上八点,好像薪资还不如以前高。三月上旬,另一个好哥们,…

拼多多百亿补贴买手机电脑等数码产品靠谱吗?

大家很多人都在问pdd百亿补贴购机靠谱吗? 首先声明一下,我不是pdd的人,我只是一个普普通通混迹从事pc行业的数码玩家,我只是在评论区看到很多人都在无脑推百亿补贴,特地发一条怗子来说明一下这个东西。此怡不存在偏向引导,此站仅站在我个人角度…

为什么闲鱼越做越差?

理想的闲鱼:卖家视角:4000块钱买的手机,用了半年不想用了,挂一个3000块,和买家一顿交流,最后2500块成交,我得到了回血,买家得到了便宜; 买家视角:想用一台4000块的手机,但是手里只有2500块,来到闲鱼和卖家一顿交流,最后25…

年收入40万的网文作者,是不是可以吊打任何职业了?

哈,我二十岁的时候也这么狂。 想当年,我一个大二学生,在宿舍里写出一本大精品,月入两万五,在学校里走路都是横着的,游戏卡池一开,看都不看,氪到出货为止。iPhone12pro一发布直接买,还买了个iPad Pro,都是官网直接买的,Appl…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。