【问题标题】:VBA to multiply based on cell value, by cell in another worksheetVBA根据单元格值乘以另一个工作表中的单元格
【发布时间】:2019-11-08 16:25:10
【问题描述】:

我正在尝试创建一个定价表,它将一个 CSV BOM 从 Creo 导入到一个新的工作表中,我已经对该部分进行了排序。问题是我想要的下一部分......

我们在“G”列中有不同的值,用于不同的材料,例如:“MS”、“SS”、“ANGLE”、“PURCHASED”

我遇到的问题是在“J”列中创建一个“总成本”,该列基于“G”中的材料。如果值为“MS”,则“J”列中的值应为数量 x 单位质量 x 材料成本。

“数量”是 C 列中的值,“单位质量”是 E 列中的值,“材料成本”始终是名为“MASTER”的工作表中的单元格 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

【问题讨论】:

  • 错误/问题是什么? MASTERH5H6 应该在引号内吗?
  • 看看vlookup函数
  • 问题是它不起作用...不向 J 列的单元格添加任何值?

标签: excel vba


【解决方案1】:

你应该试试select case函数

类似的东西:

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 和 11),你可以使用任何你想要的。

您可以使用sheets function 来选择工作表: Sheets("MASTER").Cells(5,8) 是主工作表上的 H5。 例如:Sheets("Sheet2").Cells(1, 1).Select

【讨论】:

  • 谢谢,我需要参考主工作表中的单元格,如何将其合并到乘法中?
【解决方案2】:

'''

    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 语句

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    相关资源
    最近更新 更多