Excel精英培训网

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

[已解决]单价引用不正确,请帮助修改代码。

[复制链接]
发表于 2012-3-11 15:53 | 显示全部楼层 |阅读模式
单价引用不正确.zip (32.69 KB, 下载次数: 14)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-3-11 16:00 | 显示全部楼层
期望值 与  单价表中的数据不同,不知道如何处理?

1月 甲 101,单价是没有的,就显示1?

回复

使用道具 举报

 楼主| 发表于 2012-3-11 16:03 | 显示全部楼层
本帖最后由 心灵有约 于 2012-3-11 16:07 编辑
know 发表于 2012-3-11 16:00
期望值 与  单价表中的数据不同,不知道如何处理?

1月 甲 101,单价是没有的,就显示1?

不好意思,计算表中有误,产品编码应为乙 不是甲
其实,当计算表中原物料编码不含混合字样时,引用单价不考虑产品编码,只要两表的月份和原料编码相同即可
回复

使用道具 举报

发表于 2012-3-11 16:12 | 显示全部楼层
试试这个,结果与 你要求的大不相同,应该是你修改过数据测试吧?

如果不是,还请说明 其它两个数据是怎么来的...

  1. Sub 单价()
  2. Dim H As Long, H1 As Long, Lx As Byte
  3. Dim Sh As Worksheet
  4.   Set Sh = Sheet18
  5.   With Sheet17
  6.     For H = 2 To .Range("A1").End(xlDown).Row
  7.       Lx = Split(.Cells(H, "A"), "月")(0) + 4
  8.       For H1 = 2 To .Range("A1").End(xlDown).Row
  9.         If .Cells(H, "E") & .Cells(H, "C") = Sh.Cells(H1, "A") & Sh.Cells(H1, "C") Then
  10.           .Cells(H, "I") = Sh.Cells(H1, Lx).Value
  11.           Exit For
  12.         End If
  13.       Next
  14.       If H1 > .Range("A1").End(xlDown).Row Then .Cells(H, "I") = "未找到"
  15.     Next
  16.   End With
  17. End Sub
复制代码
回复

使用道具 举报

发表于 2012-3-11 16:17 | 显示全部楼层
Sub 单价引用2()
For i = 2 To Sheets("成本计算").[a65536].End(xlUp).Row
   For j = 2 To Sheets("单价").[a65536].End(xlUp).Row
   If Sheets("成本计算").Cells(i, 5) = Sheets("单价").Cells(j, 1) Then
      a = Left(Sheets("成本计算").Cells(i, 1), Len(Sheets("成本计算").Cells(i, 1)) - 1)
      Sheets("成本计算").Cells(i, 9) = Sheets("单价").Cells(j, a + 4)
   End If
   Next
Next
End Sub
回复

使用道具 举报

发表于 2012-3-11 16:24 | 显示全部楼层
Sub 单价引用2()
For i = 2 To Sheets("成本计算").[a65536].End(xlUp).Row
b = 0
   For j = 2 To Sheets("单价").[a65536].End(xlUp).Row
    If Sheets("成本计算").Cells(i, 5) = Sheets("单价").Cells(j, 1) Then
       a = Left(Sheets("成本计算").Cells(i, 1), Len(Sheets("成本计算").Cells(i, 1)) - 1)
       Sheets("成本计算").Cells(i, 9) = Sheets("单价").Cells(j, a + 4)
    End If
   b = b + 1
   Next
   If b = Sheets("单价").[a65536].End(xlUp).Row - 1 Then Sheets("成本计算").Cells(i, 9) = "未找到"
Next
End Sub
回复

使用道具 举报

发表于 2012-3-11 16:26 | 显示全部楼层    本楼为最佳答案   
心灵有约 发表于 2012-3-11 16:03
不好意思,计算表中有误,产品编码应为乙 不是甲
其实,当计算表中原物料编码不含混合字样时,引用单价不 ...
  1. Sub 引用单价()
  2.     Dim ar, br, cr, dr()
  3.     Dim i As Integer, j As Integer, k As Integer
  4.     ar = Sheets("成本计算").Range("a1").CurrentRegion
  5.     br = Sheets("单价").Range("a1").CurrentRegion
  6.     cr = Sheets("单价").Range("e1:p1")
  7.     ReDim dr(1 To UBound(ar) - 1, 1 To 1)
  8.     For i = 2 To UBound(ar)
  9.         For j = 2 To UBound(br)
  10.             If (ar(i, 5) = br(j, 1) And Not ar(i, 5) Like "*混合*") Or (ar(i, 5) = br(j, 1) And ar(i, 3) = br(j, 3) And ar(i, 5) Like "*混合*") Then
  11.                 k = Application.Match(ar(i, 1), cr, 0)
  12.                 dr(i - 1, 1) = br(j, k + 4)
  13.                 Exit For
  14.             End If
  15.             dr(i - 1, 1) = "未找到"
  16.         Next
  17.     Next
  18.     With Sheets("成本计算")
  19.         .Range("i2").Resize(UBound(dr)).ClearContents
  20.         .Range("i2").Resize(UBound(dr)) = dr
  21.     End With
  22. End Sub
复制代码


回复

使用道具 举报

发表于 2012-3-11 16:33 | 显示全部楼层
心灵有约 发表于 2012-3-11 16:03
不好意思,计算表中有误,产品编码应为乙 不是甲
其实,当计算表中原物料编码不含混合字样时,引用单价不 ...

单价引用不正确.zip (30.34 KB, 下载次数: 8)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 21:05 , Processed in 0.264068 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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