ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 582|回复: 3

[求助] 帮帮忙写VBA代码。谢谢!!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-3-23 11:53 | 显示全部楼层 |阅读模式
麻烦老师写VBA代码。谢谢!!!!!
QQ截图20180323114624.png

3-21-1.rar

31.57 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2018-3-23 13:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
只写了一个表格,其余的方法类似

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim i As Byte, j As Byte, Rng As Range, Sht As Worksheet
  3. If Not Target.Address = "$C$8" Then Exit Sub
  4. Set Sht = Worksheets("配套清单序时簿")
  5. Set Rng = Sht.Range("B1:B" & Sht.Cells(Rows.Count, 2).End(xlUp).Row).Find(Target)
  6. If Rng Is Nothing Then
  7.     MsgBox "请检查产品编码是否正确"
  8.     Exit Sub
  9. Else
  10.     Application.ScreenUpdating = False
  11.     If Application.WorksheetFunction.CountA(Rng.Resize(100, 1)) >= 2 Then
  12.         i = Rng.End(xlDown).Row - Rng.Row
  13.     Else
  14.         i = Rng.Offset(0, 10).End(xlDown).Row - Rng.Row + 1
  15.     End If
  16.    
  17.     For j = 1 To i
  18.         Rng.Offset(j - 1, 10).Copy
  19.         Range("G" & 14 + j).Select
  20.         ActiveSheet.Paste
  21.         
  22.         Rng.Offset(j - 1, 7).Copy
  23.         Range("M" & 14 + j).Select
  24.         ActiveSheet.Paste
  25.     Next j
  26.     Application.ScreenUpdating = True
  27. End If
  28. End Sub
复制代码

3-21-1.zip

42.31 KB, 下载次数: 1

TA的精华主题

TA的得分主题

发表于 2018-3-23 13:36 | 显示全部楼层
新增了一行代码
更新时先删除原有内容

3-21-1.rar

36.3 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2018-3-23 14:01 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim i, j, k, m, arr
  3. 'On Error Resume Next
  4. arr = Sheet2.Range("a1:o65536")
  5. m = 15
  6. i = Application.Match(Range("c8"), Sheet2.Range("b1:b65536"), 0)
  7. If Not IsError(i) Then
  8. For j = i To 65536
  9.    If arr(j + 1, 2) <> "" Then
  10.    Exit For
  11. End If
  12. Next j
  13. [g15:m38] = ""
  14. For k = i To j
  15.   Cells(m, 7) = arr(k, 12)
  16.   Cells(m, 13) = arr(k, 9)
  17.   m = m + 1
  18. Next k
  19. Else: MsgBox "没有这个产品,请输入正确的产品编码。"
  20. End If
  21. End Sub
复制代码

请参考
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-22 22:15 , Processed in 0.029319 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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