Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 873|回复: 3

vba学习中,有个问题想请教各位大佬,请各位大佬帮帮忙

[复制链接]
发表于 2023-3-2 10:53 | 显示全部楼层 |阅读模式
本帖最后由 zscaa 于 2023-3-3 15:37 编辑

如图,需要从sheet1中(图1)读取数据写到sheet2(图2)中,但是当sheet1中有重复型号时(标黄色区域)需要弹出一个选择框来给人选择,该怎么做?麻烦各位大佬帮一下忙

图1

图1

图2

图2

提问.rar

14.53 KB, 下载次数: 1

发表于 2023-3-2 15:29 | 显示全部楼层
㈠需要从sheet1中(图1)读取数据写到sheet2(图2)中㈡但是当sheet1中有重复型号时(标黄色区域)需要弹出一个选择框来给人选择,该怎么做?

附件里 什么 代码都没有 ,
所以 不是 ㈡但是...  的问题,
㈠需要..  都没解决

回复

使用道具 举报

 楼主| 发表于 2023-3-3 13:01 | 显示全部楼层
本帖最后由 zscaa 于 2023-3-3 15:37 编辑
砂海 发表于 2023-3-2 15:29
㈠需要从sheet1中(图1)读取数据写到sheet2(图2)中,㈡但是当sheet1中有重复型号时(标黄色区域)需要弹 ...

额,传错文件了代码如下,附件已经更新了,请问该怎么实现?

Sub 匹配工单()
   Dim inh As Worksheet
   Dim oh As Worksheet
   Dim inRn, outRn
   Dim inStyCol, inWorkCol, inStyRow
   Dim outStyRow, outWorkCol
   Dim i
   Dim icount
   Dim str
   Set inh = Sheets("Sheet1")
   Set oh = Sheets("Sheet2")

   Set outRn = oh.Cells.Find(what:="工单", LookIn:=xlValues, lookat:=xlPart)
   outWorkCol = outRn.Column

   Set inRn = inh.Cells.Find(what:="产品型号", LookIn:=xlValues, lookat:=xlPart)
   inStyCol = inRn.Column
   inStyRow = inRn.Row

   Set outRn = inh.Cells.Find(what:="工单", LookIn:=xlValues, lookat:=xlPart)
   inWorkCol = outRn.Column

   For i = inStyRow + 1 To inh.Range("a65526").End(xlUp).Row
      str = inh.Cells(i, inStyCol)
      icount = Application.WorksheetFunction.CountIf(oh.Cells, str)
      If icount > 0 Then
         Set outRn = oh.Cells.Find(what:=str, LookIn:=xlValues, lookat:=xlPart)
         oh.Cells(outRn.Row, outWorkCol) = inh.Cells(i, inWorkCol)
      End If

   Next i
End Sub



回复

使用道具 举报

 楼主| 发表于 2023-3-6 10:31 | 显示全部楼层
砂海 发表于 2023-3-2 15:29
㈠需要从sheet1中(图1)读取数据写到sheet2(图2)中,㈡但是当sheet1中有重复型号时(标黄色区域)需要弹 ...

大佬在不?请问这个该怎么做啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-28 12:20 , Processed in 0.297908 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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