ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: sulli112

[求助] 一对多编码,引出多列对应编码数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-11 17:40 | 显示全部楼层
  1. Sub test()
  2. Dim myr As Range
  3. arr = Sheets("总库存").Range("A1").CurrentRegion
  4. For i = 2 To UBound(arr)
  5.     If arr(i, 1) = [A2] Then
  6.         If myr Is Nothing Then
  7.             Set myr = Union(Sheets("总库存").Range("B1").Resize(1, 6), Sheets("总库存").Range("B" & i).Resize(1, 6))
  8.         Else
  9.             Set myr = Union(myr, Sheets("总库存").Range("B" & i).Resize(1, 6))
  10.         End If
  11.     End If
  12. Next
  13. myr.Copy [B1]
  14. End Sub
复制代码

测试.zip

19.82 KB, 下载次数: 14

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-11 18:07 | 显示全部楼层
sql语句

image.jpg

测试.rar

19.43 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-11 21:25 来自手机 | 显示全部楼层
本帖最后由 sulli112 于 2024-5-12 19:21 编辑
lln0618 发表于 2024-5-11 16:26
Sub 复制()
'
' 复制 宏

您好,我想请教一下:1.如果我想A&F列作为字典,去总表找对应A&F相同的,取数,是不是只需要修改If ws2.Cells(j, 1) = ws.Cells(i, 1) Then这句话为IIf ws2.Cells(j, 1) = ws.Cells(i, 1) And ws2.Cells(j, 6) = ws.Cells(i, 6) Then即可吗?
2.源代码是不是不限制列数呢,不管我总表多少行,只要A列相同,都会带出整行数据呢,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-12 09:38 来自手机 | 显示全部楼层
swl4561255 发表于 2024-5-11 17:40

您好,我想请教一下,如果我需要改成判断A跟B列一致时,从总表取数,是不啊修改一下这段代码为:
For i = 2 To UBound(arr)
    If arr(i, 1) and arr(i,2) = [A2] and [B2]Then'这里我新增了范围arr(i,, 2)跟〔B2〕,下面字母C的位置原本是B,这样子修改对吗?
        If myr Is Nothing Then
            Set myr = Union(Sheets("总库存").Range("C1").Resize(1, 6), Sheets("总库存").Range("C" & i).Resize(1, 6))
        Else
            Set myr = Union(myr, Sheets("总库存").Range("C" & i).Resize(1, 6))
我想了解清楚,方便后期自己新增判断条件使用的时候,会修改,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-12 11:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

您好,很感谢您的解答,有个疑问想请您接单一下,我想问问,假设我想将代码改成当A列编码,P单价、O数量一致时,带出其他列数据,是否可以这么修改呢
Sub test()
Dim myr As Range
arr = Sheets("总库存").Range("A1").CurrentRegion
For i = 2 To UBound(arr)
    If arr(i, 1) = [A2] Then'这里是否改成If arr(i, 1) and arr(i, 6) and arr(i, 7) = [A2] and  [P2] and  [O2] Then'呢?
        If myr Is Nothing Then
            Set myr = Union(Sheets("总库存").Range("B1").Resize(1, 6), Sheets("总库存").Range("B" & i).Resize(1, 6))
        Else
            Set myr = Union(myr, Sheets("总库存").Range("B" & i).Resize(1, 6))
        End If
    End If
Next
myr.Copy [B1]
End Sub

然后后面标颜色地方要怎么修改呢,谢谢我是怕后期会需要多增加判断条件,所以先了解一下可以怎么修改

TA的精华主题

TA的得分主题

发表于 2024-5-12 18:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sulli112 发表于 2024-5-12 11:56
您好,很感谢您的解答,有个疑问想请您接单一下,我想问问,假设我想将代码改成当A列编码,P单价、O数量 ...

多列匹配,这种情况最好用字典来处理,代码就不这样写了,改动会比较大,现在的附件无法测试,最好重新上传附件。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-12 19:49 | 显示全部楼层
swl4561255 发表于 2024-5-12 18:35
多列匹配,这种情况最好用字典来处理,代码就不这样写了,改动会比较大,现在的附件无法测试,最好重新上 ...

不好意思,新附件已经上传,这次附件能不能考虑一下:1.测试表里面A列编码跟F列金额,实操可能我会需要找多列不同编码、金额情况,您之前的代码好像是只能每次找出一列编码,输入多列好像不会将结果带出来2。如果可以希望新代码可以备注一下如果修改条件的话(因为我实操可能会修改编码跟单位、或者编码跟物料名称这种混搭),需要修改哪个地方谢谢,非常感谢,辛苦了


17e6cc035b33ef03717c16e1e949316.png

测试.zip

7.07 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2024-5-12 20:18 | 显示全部楼层
本帖最后由 shiruiqiang 于 2024-5-12 20:19 编辑

字典

image.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-12 20:25 | 显示全部楼层
本帖最后由 shiruiqiang 于 2024-5-12 21:25 编辑

多条件sql

image.jpg

测试.rar

14.67 KB, 下载次数: 7

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-13 08:45 | 显示全部楼层
本帖最后由 sulli112 于 2024-5-13 09:15 编辑

您好,请问sql修改条件,是只修改我圈住那里吗,如果加条件,是不是就是将这句话改为a.物料编码=b.物料编码 and a.单价=b.单价,a.物料编码=b.物料编码 and a.单价=b.单价 and a.入库日期=b.入库日期吗,这样子修改吗
93ffe56619521ff757097a5d0f00ffc.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 23:44 , Processed in 0.043955 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表