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

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

卡卷网1年前 (2025-05-18)每日看点288

使用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

分享给朋友:

相关文章

创业容易吗?

创业容易吗?创建企业不一定是困难或令人生畏的。它可以从一个简单但有力的想法开始,比如小强意识到,如果洗手液能杀死真菌,尤其是拳击台上的真菌,就会更加有用。创业确实需要奉献精神、努力工作和仔细规划——这是没有办法的。虽然这本身可能并不容易,但…

那些极速版软件其存在目的是什么?

那些极速版软件其存在目的是什么?

我看了很多回答,其实都没有回答道点子上。 你知道极速版APP为什么叫极速版吗? 是他看视频更快吗?显然不是。 只是它的安装包体积更小,下载安装速度更快而已,所以叫极速版app。当然啦,现在极速版APP和原声版APP,安装包已经没有区别了,这…

OZON平台什么产品好卖?

ozon选品的核心重点我不说 你们全网也不见说的这么干的教学了 你信我就按照我说的思路去走 不信的出去买课去 一时间消化不了的先点赞收藏起来 真不中了下载也行 因为最近总有坏人给我使诈 平台已经下了我八个视频了 还都是实操教学不废话的那种…

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

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

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

为什么大家都说手机性能永远超不过PC?

最新的天玑9400牛逼吧,堪称PC级CPU,测试成绩16W功耗能跑9500分,1.8W能跑3000分,GPU也差不多是这个情况。 手机电池一般是4000-5000毫安时,电压3.7V。 也就是说,手机正常满载5W功耗下,这个电池能支持运行4…

都是前端框架,为什么用 React 的人会有优越感?

都是前端框架,为什么用 React 的人会有优越感?

上家公司一直搞react,最近第一次写个vue3项目。 老板朋友来了看了下页面说:这用vue写的吧。 我:是... 老板朋友:一看就知道是vue做的。 这tm你看一眼页面就知道用的啥框架? 这感觉就是,我一直用苹果,偶尔用了下华为打电话,有…

发表评论

访客

看不清,换一张

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