我正在尝试创建一个定价表,将从Creo导入CSV BOM到一个新的工作表,我有排序的一部分。问题是我想要的下一部分..。
我们在“G”栏中有不同的值,这是针对不同材料的,例如:“MS”,“SS”,“ANGLE”,“PURCHASED”。
我的问题是在列'J‘中创建一个’总成本‘,它基于'G’中的材料。如果值为"MS“,则列'J‘中的值应为数量x单位质量x材料成本。
“数量”是C列中的值,“单位质量”是E列中的值,“material cost”始终是名为“H5”的工作表中的单元格(这是总成本列J的来源)
Sub subMultiply()
    For Each Cel In Range("G2:D" & Cells(Rows.Count, "G").End(xlUp).Row)
        If Cel.Value = "MS" Then
            Cel.Offset(0, 3).Value = Cel.Offset(0, -2).Value * ThisWorkbook.Sheets(MASTER).Range(H5).Value * Cel.Offset(0, -4).Value
        ElseIf Cel.Value = "PURCHASED" Then
            Cel.Offset(0, 3).Value = Cel.Offset(0, -3).Value * ThisWorkbook.Sheets(MASTER).Range(H6).Value * Cel.Offset(0, -4).Value
        End If
    Next
End Sub发布于 2019-11-08 16:25:10
“”“
    Firstrow = .UsedRange.Cells(1).Row
    lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
    For lRow = lastrow To Firstrow Step -1
        Set ws2 = ThisWorkbook.Sheets("MASTER")
        With .Cells(lRow, "G")
            If Not IsError(.Value) Then
                If .Value Like ("*MS*") Then Cells(lRow, "D").Value = Cells(lRow, "E").Value * ws2.Range("H5").Value‘我可以为每种材料添加另一个If语句
发布于 2019-11-08 00:31:04
您应该尝试使用select case函数
像这样的SOmething:
Select Case Cells(i, 7)
    Case Is = "MS"
        Cells(i, 10) = 3
    Case Is = "SS"
        Cells(i, 10) = 5
    Case Is = "ANGLE"
        Cells(i, 10) = 8
    Case Is = "PURCHASED"
        Cells(i, 10) = 11
End Select除了我在测试中使用的数字(3,5,8 and11),您可以使用任何您想要的数字。
您可以使用sheets function来选择Sheets : Sheets(" Master ").Cells(5,8) is H5 on the Master sheets。例如:Sheets("Sheet2").Cells(1, 1).Select
https://stackoverflow.com/questions/58752318
复制相似问题